Compartir vía


TableValuedFunction.inline

Explota una matriz de estructuras en una tabla.

Esta función toma una columna de entrada que contiene una matriz de estructuras y devuelve una nueva columna donde cada estructura de la matriz se explota en una fila independiente.

Syntax

spark.tvf.inline(input)

Parámetros

Parámetro Tipo Description
input pyspark.sql.Column Columna de entrada de valores que se va a explotar.

Devoluciones

pyspark.sql.DataFrame: DataFrame con filas de estructura explotadas.

Examples

Ejemplo 1: Uso de una matriz de estructura única en línea

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

Ejemplo 2: Uso en línea con una columna de matriz de estructura vacía

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

Ejemplo 3: Uso en línea con una columna de matriz de estructura que contiene valores 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|
+----+----+