平らにする
配列の配列から単一の配列を作成します。ネストされた配列の構造が 2 レベルより深い場合は、ネストのうち 1 レベルのみが削除されます。
構文
Python
from pyspark.sql import functions as sf
sf.flatten(col)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| フラット化する列または式の名前。 |
戻り値
pyspark.sql.Column: フラット化された配列を含む新しい列。
例
例1 : 単純なネストされた配列をフラット化する
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([[1, 2, 3], [4, 5], [6]],)], ['data'])
df.select(sf.flatten(df.data)).show()
Output
+------------------+
| flatten(data)|
+------------------+
|[1, 2, 3, 4, 5, 6]|
+------------------+
例2 : null値を持つ配列をフラット化する
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([None, [4, 5]],)], ['data'])
df.select(sf.flatten(df.data)).show()
Output
+-------------+
|flatten(data)|
+-------------+
| NULL|
+-------------+
例3 : 2レベル以上のネストを持つ配列をフラット化する
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([[[1, 2], [3, 4]], [[5, 6], [7, 8]]],)], ['data'])
df.select(sf.flatten(df.data)).show(truncate=False)
Output
+--------------------------------+
|flatten(data) |
+--------------------------------+
|[[1, 2], [3, 4], [5, 6], [7, 8]]|
+--------------------------------+
例4 : 混合型の配列をフラット化する
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([['a', 'b', 'c'], [1, 2, 3]],)], ['data'])
df.select(sf.flatten(df.data)).show()
Output
+------------------+
| flatten(data)|
+------------------+
|[a, b, c, 1, 2, 3]|
+------------------+