有什麼方法可以將數據幀行轉置爲列。 我有以下結構作爲輸入:如何將行轉換爲火花數據幀中的列,scala
val inputDF = Seq(("pid1","enc1", "bat"),("pid1","enc2", ""),("pid1","enc3", ""),("pid3","enc1", "cat"),("pid3","enc2", "")).toDF("MemberID", "EncounterID", "entry")
inputDF.show:
+--------+-----------+-----+
|MemberID|EncounterID|entry|
+--------+-----------+-----+
| pid1| enc1| bat|
| pid1| enc2| |
| pid1| enc3| |
| pid3| enc1| cat|
| pid3| enc2| |
+--------+-----------+-----+
expected result:
+--------+----------+----------+----------+-----+
|MemberID|Encounter1|Encounter2|Encounter3|entry|
+--------+----------+----------+----------+-----+
| pid1| enc1| enc2| enc3| bat|
| pid3| enc1| enc2| null| cat|
+--------+----------+----------+----------+-----+
請建議是否有可用的轉置行到列的任何優化的直接API。 我的輸入數據量是相當大的,所以像collect這樣的動作,我無法執行,因爲它會佔用驅動程序上的所有數據。 我正在使用Spark 2.x
如果'entry'具有所有3個'EncounterID'的值,該怎麼辦?只能有3個'EncounterID'嗎? – philantrovert
條目將只有一個值。並且是EncounterID是固定的,將只有3個EncounterID。 – Kalpesh
你確定這是你期望的結果嗎?所有三個Encounter列總是具有相同的值... – Oli