![](/img/trans.png)
[英]How to transpose date from column to row with mapping value in python?
[英]Row transpose with value from a second column in pySpark
我有一個帶有4列(C1,C2,C3和C4)的pySpark數據框。 在第三列(C3)中,我具有分類值,例如V1,V2,V3;在第四列(C4)中,我具有其相應的數值。 我正在嘗試添加其他列V1,V2和V3,其中這些新列的值應來自第四列(C4)的對應行
我能夠通過UDF
和DF.withColumn
將行轉置為列,但無法帶來值
def valTocat(C3):
if C3 == 'xyz':
return 1
else:
return 0
但以下內容不起作用
def valTocat((C3, C4)):
if C3 == 'xyz':
return C4
else:
return 0
我無法以某種方式發布數據的表格格式,但我認為它很容易可視化。
一些建議將不勝感激
您可以嘗試DataFrame
pivot()
您的DataFrame
:
from pyspark.sql.functions import expr
df.groupBy("c1","c2") \
.pivot("c3") \
.agg(expr("coalesce(first(c4))")).show()
您需要函數coalesce
以用null
代替缺少的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.