spark scalaで2つのデータフレームをテーブルとして登録しています。この2つのテーブルから spark sqlで2つのデータフレームを変換する
表1:
+-----+--------+
|id |values |
+-----+----- +
| 0 | v1 |
| 0 | v2 |
| 1 | v3 |
| 1 | v1 |
+-----+----- +
表2:
+-----+----+--- +----+
|id |v1 |v2 | v3
+-----+-------- +----+
| 0 | a1| b1| - |
| 1 | a2| - | c2 |
+-----+---------+----+
は、私は上記の2つのテーブルを使用して新しいテーブルを生成したいです。
表3:
+-----+--------+--------+
|id |values | field |
+-----+--------+--------+
| 0 | v1 | a1 |
| 0 | v2 | b1 |
| 1 | v3 | c2 |
| 1 | v1 | a2 |
+-----+--------+--------+
ここで、V1は、私がScalaでスパークSQLを使用していますフォーム
v1: struct (nullable = true)
| |-- level1: string (nullable = true)
| |-- level2: string (nullable = true)
| |-- level3: string (nullable = true)
| |-- level4: string (nullable = true)
| |-- level5: string (nullable = true)
です。
いくつかのSQLクエリを書くか、データフレームにいくつかのスパーク関数を使用することで、目的を達成できますか?ここで
私はINSERT INTO table1(field)、VALUES(SELECT column_name FROM table2 where table1.id = table2.id)を試していましたが、これはtable1からcolumn_nameを動的に必要とします – satyambansal117
はテーブル2の有限の列名のリストですか? –
カラム名の数はあらかじめわかっていませんが、カラム2の別個の値と同じ番号です。 – satyambansal117