データフレームの行を列に転記する方法はありますか。 私は、入力としての構造を以下している:列に行を入れ替えるために利用可能な任意の最適化された直接のAPIがある場合spark datframe、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|
+--------+----------+----------+----------+-----+
示唆してください。 私の入力データサイズはかなり大きいので、collectのようなアクションはドライバのすべてのデータを取るので実行できません。 私はSpark 2.xを使用しています
'entry'がすべて3 EncounterID'の値を持っていたらどうなりますか? 'EncounterID'は3つしかありませんか? – philantrovert
エントリの値は1つだけです。はいEncounterIDは固定ですが、EncounterIDは3つしかありません。 – Kalpesh
これがあなたが期待している結果だと確信していますか? 3つのエンカウンター列は常に同じ値を持ちます... – Oli