2016-11-07 23 views
5

Tôi muốn chọn nhiều cột từ khung dữ liệu hiện có (được tạo sau khi tham gia) và muốn sắp xếp các biểu mẫu dưới dạng cấu trúc bảng mục tiêu của tôi. Nó được hoàn thiện bằng cách nào ? Tiếp cận tôi đã sử dụng là dưới đây. Ở đây tôi có thể chọn các cột cần thiết nhưng không thể thực hiện theo thứ tự.Cách chọn và sắp xếp nhiều cột trong Pyspark Dataframe sau khi tham gia

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] 

Tài khoản_sk_id cần phải ở vị trí thứ 2. Cách tốt nhất để làm điều này là gì?

Trả lời

6

Hãy thử chọn cột bằng cách chỉ đưa ra một danh sách, chứ không phải bằng cách lặp lại existings cột hoặc đặt hàng nên OK:

account_sk_df_ld = account_sk_df.select(*hist_columns) 
+0

Có .. Đó là làm việc cho tôi. một bạn xin giải thích cho tôi những gì đã xảy ra .. Các lĩnh vực có trong danh sách. – user3858193

+0

Trong tia lửa bạn có thể chọn cột bằng cách đặt tên của chúng dưới dạng chuỗi (nhưng chỉ khi chúng là duy nhất trong khung dữ liệu hiện tại). – Mariusz

Các vấn đề liên quan