[英]how to convert columns to rows in pyspark?
我有一個 dataframe 有幾列,我需要把它放在一個列中,我怎樣才能在不失去 pyspark 的並行能力的情況下在性能上做到這一點? 有人能幫我嗎?
USER|ID_1 |ID_2 |ID_3 |ID_4 |Name1|Name2|Name3|Name4
1234|1234500|null |null |null |text |null |null |null
1234|1234500|null |null |null |text |null |null |null
1234|null |null |1111500|null |null |null |text |null
1234|null |null |1111500|null |null |null |text |null
1234|null |1111222|null |null |null |text |null |null
1234|null |1111222|null |null |null |text |null |null
1234|null |null |null |1111333|null |null |null |text
1234|null |null |null |1111333|null |null |null |text
預期 output:
USER|ID |Name
1234|1234500|text
1234|1234500|text
1234|1111500|text
1234|1111500|text |
1234|1111222|text |
1234|1111222|text |
1234|1111333|text |
1234|1111333|text |
嘗試使用coalesce(col1,col2,col3..coln)
Example:
df.withColumn("id",coalesce(col("ID_1"),col("ID_2"),col("ID_3"),col("ID_4"))).\
withColumn("Name",coalesce(col("Name1"),col("Name2"),col("Name3"),col("Name4"))).\
show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.