PySparkのexplode関数を使用したデータの展開方法


以下に、PySparkのexplode関数を使用したデータの展開方法のいくつかの例を示します。

  1. 配列の展開: データフレームの特定の列が配列である場合、explode関数を使用してその配列を展開することができます。
from pyspark.sql.functions import explode
# データフレームの作成
df = spark.createDataFrame([(1, [1, 2, 3]), (2, [4, 5])], ["id", "numbers"])
# 配列を展開して個別の行として取得
exploded_df = df.select("id", explode("numbers").alias("number"))
exploded_df.show()

出力:

+---+------+
| id|number|
+---+------+
|  1|     1|
|  1|     2|
|  1|     3|
|  2|     4|
|  2|     5|
+---+------+
  1. マップの展開: データフレームの特定の列がマップである場合、explode関数を使用してそのマップを展開することもできます。
from pyspark.sql.functions import explode
# データフレームの作成
df = spark.createDataFrame([(1, {"a": 1, "b": 2}), (2, {"c": 3, "d": 4})], ["id", "map_col"])
# マップを展開して個別の行として取得
exploded_df = df.select("id", explode("map_col").alias("key", "value"))
exploded_df.show()

出力:

+---+---+-----+
| id|key|value|
+---+---+-----+
|  1|  a|    1|
|  1|  b|    2|
|  2|  c|    3|
|  2|  d|    4|
+---+---+-----+

これらはPySparkのexplode関数を使用したデータの展開の例です。他にもさまざまなデータ構造に対して展開を行うことができます。ご参考になれば幸いです。