次の方法で共有


TableValuedFunction.inline

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

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

構文

spark.tvf.inline(input)

パラメーター

パラメーター タイプ Description
input pyspark.sql.Column 分解する値の入力列。

返品ポリシー

pyspark.sql.DataFrame: 分解された構造体行を含むデータフレーム。

例示

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

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()
+---+---+
|  a|  b|
+---+---+
|  1|  2|
|  3|  4|
+---+---+

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

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

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

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()
+----+----+
|   a|   b|
+----+----+
|   1|   2|
|NULL|NULL|
|   3|   4|
+----+----+