テーブル値関数.explode
指定された配列またはマップ内の各要素の新しい行を含む DataFrame を返します。特に指定がない限り、配列内の要素にはデフォルトの列名colを使用し、マップ内の要素にはkeyとvalue使用します。
構文
Python
spark.tvf.explode(collection)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| 取り組むターゲットカラム。 |
戻り値
pyspark.sql.DataFrame: 要素ごとに新しい行を持つ DataFrame。
例
例1 : 配列の列を展開する
Python
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).show()
Output
+---+
|col|
+---+
| 1|
| 2|
| 3|
+---+
例2 : マップ列の展開
Python
import pyspark.sql.functions as sf
spark.tvf.explode(
sf.create_map(sf.lit("a"), sf.lit("b"), sf.lit("c"), sf.lit("d"))
).show()
Output
+---+-----+
|key|value|
+---+-----+
| a| b|
| c| d|
+---+-----+
例3 :構造体列の配列を展開する
Python
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(
sf.named_struct(sf.lit("a"), sf.lit(1), sf.lit("b"), sf.lit(2)),
sf.named_struct(sf.lit("a"), sf.lit(3), sf.lit("b"), sf.lit(4))
)).select("col.*").show()
Output
+---+---+
| a| b|
+---+---+
| 1| 2|
| 3| 4|
+---+---+
例4 : 空の配列列を展開する
Python
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array()).show()
Output
+---+
|col|
+---+
+---+
例5 : 空のマップ列を展開する
Python
import pyspark.sql.functions as sf
spark.tvf.explode(sf.create_map()).show()
Output
+---+-----+
|key|value|
+---+-----+
+---+-----+