>>> a
DataFrame[id: bigint, julian_date: string, user_id: bigint]
>>> b
DataFrame[id: bigint, quan_created_money: decimal(10,0), quan_created_cnt: bigint]
>>> a.join(b, a.id==b.id, 'outer')
DataFrame[id: bigint, julian_date: string, user_id: bigint, id: bigint, quan_created_money: decimal(10,0), quan_created_cnt: bigint]
Có hai id: bigint
và tôi muốn xóa một cột. Làm thế nào tôi có thể làm được?Cách xóa cột trong pyspark dataframe
Tôi nghĩ mình có câu trả lời. Chọn cần lấy danh sách các chuỗi KHÔNG phải là danh sách các cột. Vì vậy, hãy làm điều này: 'keep = [c cho c trong a.columns] + [c cho c trong b.columns nếu c! = 'Id']' 'd = a.join (b, a.id = = b.id, 'outer'). select (* keep) ' – deusxmach1na
Vâng, điều đó phải làm chính xác điều tương tự như câu trả lời của tôi, vì tôi khá chắc chắn rằng' select' chấp nhận hoặc chuỗi HOẶC cột (https: // spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrame). Btw, trong dòng của bạn 'keep = ...' không cần phải sử dụng một danh sách hiểu cho 'a':' a.columns + [c cho c trong b.columns nếu c! = 'Id'] 'sẽ đạt được chính xác điều tương tự, như 'a.columns' đã là một' danh sách' của chuỗi. – karlson
@ deusxmach1na Trên thực tế việc lựa chọn cột dựa trên các chuỗi không thể làm việc cho OP, bởi vì điều đó sẽ không giải quyết được sự mơ hồ của cột 'id'. Trong trường hợp đó, bạn phải sử dụng các cá thể 'Column' trong' select'. – karlson