Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Esplode un array di strutture in una tabella.
Questa funzione accetta una colonna di input contenente una matrice di struct e restituisce una nuova colonna in cui ogni struct nella matrice viene esploso in una riga separata.
Sintassi
spark.tvf.inline(input)
Parametri
| Parametro | TIPO | Description |
|---|---|---|
input |
pyspark.sql.Column |
Colonna di input di valori da esplodere. |
Restituzioni
pyspark.sql.DataFrame: dataframe con righe di struct esplose.
Esempi
Esempio 1: Uso inline con una singola matrice di struct
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|
+---+---+
Esempio 2: Uso inline con una colonna di matrice di struct vuota
import pyspark.sql.functions as sf
spark.tvf.inline(sf.array().astype("array<struct<a:int,b:int>>")).show()
+---+---+
| a| b|
+---+---+
+---+---+
Esempio 3: Uso di inline con una colonna di matrice di struct contenente valori 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|
+----+----+