2016-11-07 14 views
5

Mevcut veri çerçevesinden (katılmadan sonra oluşturulan) birden çok sütun seçmek istiyorum ve dosya tablolarını hedef tablo yapım olarak sipariş etmek istiyorum. Nasıl yapılabilir? Kullandığım yaklaşım aşağıda. Burada gerekli olan gerekli sütunları seçebiliyorum ama sırayla yapamıyorum.Bir Pyspark Dataframe öğesinde birden çok sütunun seçilmesi ve siparişi verildikten sonra,

Required (Target Table structure) : 
hist_columns = ("acct_nbr","account_sk_id", "zip_code","primary_state", "eff_start_date" ,"eff_end_date","eff_flag") 

account_sk_df = hist_process_df.join(broadcast(df_sk_lkp) ,'acct_nbr','inner') 
account_sk_df_ld = account_sk_df.select([c for c in account_sk_df.columns if c in hist_columns]) 

>>> account_sk_df 
DataFrame[acct_nbr: string, primary_state: string, zip_code: string, eff_start_date: string, eff_end_date: string, eff_flag: string, hash_sk_id: string, account_sk_id: int] 


>>> account_sk_df_ld 
DataFrame[acct_nbr: string, primary_state: string, zip_code: string, eff_start_date: string, eff_end_date: string, eff_flag: string, account_sk_id: int] 

account_sk_id'in ikinci sırada olması gerekir. Bunu yapmanın en iyi yolu nedir? adil değil Tamam olmalıdır existings sütun veya sipariş tekrarlayarak, bir liste vererek sütunları seçerek

cevap

6

Dene:

account_sk_df_ld = account_sk_df.select(*hist_columns) 
+0

Evet .. Bu benim için çalışıyor. bir siz bana ne olduğunu açıklayın .. Alanlar listede yer aldı. – user3858193

+0

Bu kıvılcımda, isimlerini dizge olarak vererek sütunları seçebilirsiniz (ancak sadece mevcut veri çerçevesinde benzersiz iseler). – Mariusz

İlgili konular