結果のデータフレームに元の配列の値ごとに1行が含まれるように、sparkデータフレーム内で配列をネスト解除するにはどうすればよいですか?
例:
scala> df.show()
+---------+------+
|employees|person|
+---------+------+
|[1, 2, 3]| Mary|
|[4, 5, 6]| John|
+---------+------+
期待される結果:
+---------+------+
|employee |person|
+---------+------+
|1 | Mary|
|2 | Mary|
|3 | Mary|
|4 | John|
|5 | John|
|6 | John|
+---------+------+
これは私が試したものです:
df.select($"person", explode($"employees")).show()
+------+---+
|person|col|
+------+---+
| Mary| 1|
| Mary| 2|
| Mary| 3|
| John| 4|
| John| 5|
| John| 6|
+------+---+
結果の展開列に「従業員」という名前を付けるにはどうすればよいですか?
回答 2 件
withColumn
を使用できます 新しい列を作成するようにdf.withColumn("employee", explode($"employees")).show()
関連記事
- Sparkデータフレームは列の要素をカウントします
- 優先度に基づいてデータフレーム列をマップする
- 違いを生むために、日付でデータフレームをどのように平坦化しますか? Pythonパンダ
- フラットマップを使用してsparkscalaデータフレーム列で1対多のマッピングを実行する方法
- 2つのパンダ列を1つのデータフレームに混合し、最初の列の最初の要素、2番目の列の2番目の要素などを使用するにはどうすればよいですか?
- データフレーム内の一般的なアイテムリストベースの列を取得する
- Python DataFrame:最小範囲と最大範囲に基づいて2つの列を追加しますか?
- Pythonのデータフレームの列の長いリストに対して並べ替えが機能しない
- 300以上の列を持つ空のパンダデータフレーム
- パンダデータフレームの2つの列を2つに分割し、名前を付けます
または