以下に、PySparkのexplode関数を使用したデータの展開方法のいくつかの例を示します。
- 配列の展開: データフレームの特定の列が配列である場合、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|
+---+------+
- マップの展開: データフレームの特定の列がマップである場合、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関数を使用したデータの展開の例です。他にもさまざまなデータ構造に対して展開を行うことができます。ご参考になれば幸いです。