メインコンテンツまでスキップ

TableValuedFunction.inline

構造体の配列をテーブルに展開します。

この関数は、構造体の配列を含む入力列を受け取り、配列内の各構造体が個別の行に展開された新しい列を返します。

構文

Python
spark.tvf.inline(input)

パラメーター

パラメーター

Type

説明

input

pyspark.sql.Column

分解する値の入力列。

戻り値

pyspark.sql.DataFrame: 展開された構造体の行を持つ DataFrame。

例1 : 単一の構造体配列でインラインを使用する

Python
import pyspark.sql.functions as sf
spark.tvf.inline(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))
)).show()
Output
+---+---+
| a| b|
+---+---+
| 1| 2|
| 3| 4|
+---+---+

例2 : 空の構造体配列列でインラインを使用する

Python
import pyspark.sql.functions as sf
spark.tvf.inline(sf.array().astype("array<struct<a:int,b:int>>")).show()
Output
+---+---+
| a| b|
+---+---+
+---+---+

例3 : null値を含む構造体配列列でインラインを使用する

Python
import pyspark.sql.functions as sf
spark.tvf.inline(sf.array(
sf.named_struct(sf.lit("a"), sf.lit(1), sf.lit("b"), sf.lit(2)),
sf.lit(None),
sf.named_struct(sf.lit("a"), sf.lit(3), sf.lit("b"), sf.lit(4))
)).show()
Output
+----+----+
| a| b|
+----+----+
| 1| 2|
|NULL|NULL|
| 3| 4|
+----+----+