取消
顯示的結果
而不是尋找
你的意思是:

使用“選擇Expr”和“堆棧”透視PySpark DataFrame不會產生預期的結果

麥當娜
重視貢獻二世

我試圖透視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”的價值是一樣的列“年”,這是出乎意料的時候。

知道解決這個問題嗎?

1接受解決方案

接受的解決方案

UmaMahesh1
尊敬的貢獻者三世

嗨@Mohammad軍刀

這個問題是因為列名是類似於一個文本值和它正在提供恒定值的鍵。

為了避免這種情況你可以給下麵的更適當的列名稱。

圖像如果你有其他的方式,你可以明確告訴火花,2018是列值而不是文字時,你也可以試試. .

希望這有助於……

幹杯

在原帖子查看解決方案

2回答2

UmaMahesh1
尊敬的貢獻者三世

嗨@Mohammad軍刀

這個問題是因為列名是類似於一個文本值和它正在提供恒定值的鍵。

為了避免這種情況你可以給下麵的更適當的列名稱。

圖像如果你有其他的方式,你可以明確告訴火花,2018是列值而不是文字時,你也可以試試. .

希望這有助於……

幹杯

arggg
新的貢獻者二世

在另一個dummie例子我不能重現這個錯誤,有一個解釋為什麼發生這種情況嗎?

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map