Teilen über


TableValuedFunction.inline

Erstellt aus einem Array von Strukturen eine Tabelle.

Diese Funktion verwendet eine Eingabespalte, die ein Array von Strukturen enthält, und gibt eine neue Spalte zurück, in der jede Struktur im Array in einer separaten Zeile explodiert ist.

Syntax

spark.tvf.inline(input)

Die Parameter

Parameter Typ Description
input pyspark.sql.Column Eingabespalte mit Werten, die explodiert werden sollen.

Rückkehr

pyspark.sql.DataFrame: Ein DataFrame mit explodierten Strukturzeilen.

Examples

Beispiel 1: Verwenden von Inline mit einem einzelnen Strukturarray

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|
+---+---+

Beispiel 2: Verwenden von Inline mit einer leeren Strukturarrayspalte

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

Beispiel 3: Verwenden von Inline mit einer Strukturarrayspalte mit Nullwerten

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|
+----+----+