亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何透視DataFrame?

如何透視DataFrame?

蝴蝶不菲 2019-06-03 15:12:57
如何透視DataFrame?我開始使用SparkDataFrames,我需要能夠將數據轉到多個行的1列中創建多列。在燙傷中有內置的功能,我相信Python中的Pandas,但是我無法為新的SparkDataframe找到任何東西。我想我可以寫一些自定義函數來實現這一點,但我甚至不知道如何開始,特別是因為我是一個星火新手。我知道如何使用內置的功能或關于如何在Scala中編寫東西的建議來完成這一任務,這是非常值得贊賞的。
查看完整描述

3 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

通過編寫for循環來動態創建SQL查詢,我克服了這一點。說我有:

id  tag  value
1   US    50
1   UK    100
1   Can   125
2   US    75
2   UK    150
2   Can   175

我想:

id  US  UK   Can
1   50  100  125
2   75  150  175

我可以創建一個包含我想要樞軸的值的列表,然后創建一個包含我需要的SQL查詢的字符串。

val countries = List("US", "UK", "Can")val numCountries = countries.length - 1var query = "select *, "for (i <- 0 to numCountries-1) {
  query += """case when tag = """" + countries(i) + """" then value else 0 end as """ + countries(i) + ", "}query += """case when tag = """" 
  + countries.last + """" then value else 0 end as """ + countries.last + " from myTable"myDataFrame.registerTempTable("myTable")val myDF1 = 
  sqlContext.sql(query)

我可以創建類似的查詢,然后進行聚合。這不是一個非常優雅的解決方案,但它可以工作,并且對于任何值列表都是靈活的,在調用代碼時,這些值也可以作為參數傳入。


查看完整回答
反對 回復 2019-06-03
  • 3 回答
  • 0 關注
  • 927 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號