我試圖透視PySpark DataFrame,但我沒有得到正確的結果。
樣本數據集:
#數據準備數據=[(“西班牙”,101、201、301),\(“台灣”,102,202,302),\(“意大利”,103、203、303),\(“中國”,104、204、304)]#創建DataFrame列=(“國家”、“2018”、“2019”、“2002”]df =火花。createDataFrame(=數據、模式=列)df.show(截斷= False)
下麵是我的代碼:
從pyspark。sql導入函數F unpivotExpr =“堆棧(3 ' 2018 ' 2018年,2019年,2019年,2020年,2020年)(CPI),“unPivotDF = df。選擇(“國家”,F.expr (unpivotExpr)) unPivotDF.show ()
結果:
正如你所看到的在上麵的圖片中,列“CPI”的價值是一樣的列“年”,這是出乎意料的時候。
知道解決這個問題嗎?
嗨@Mohammad軍刀
這個問題是因為列名是類似於一個文本值和它正在提供恒定值的鍵。
為了避免這種情況你可以給下麵的更適當的列名稱。
如果你有其他的方式,你可以明確告訴火花,2018是列值而不是文字時,你也可以試試. .
希望這有助於……
幹杯