Pular para o conteúdo principal

variante_explode_outer

Separa um objeto/matriz variante em várias linhas contendo seus campos/elementos. Seu esquema de resultado é struct<pos int, key string, value variant>. pos é a posição do campo/elemento em seu objeto/matriz pai e value é o valor do campo/elemento. key é o nome do campo ao explodir um objeto variante, ou é NULL ao explodir uma matriz variante. Diferentemente de variant_explode, se a variante fornecida não for uma matriz/objeto de variantes, incluindo SQL NULL, variante nula e quaisquer outros valores de variante, então NULL será produzido.

Sintaxe

Python
spark.tvf.variant_explode_outer(input)

Parâmetros

Parâmetro

Tipo

Descrição

input

pyspark.sql.Column

Coluna de entrada com os valores a serem explodidos.

Exemplos

Exemplo 1 : Usando variant_explode_outer com um array de variantes

Python
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('["hello", "world"]'))).show()
Output
+---+----+-------+
|pos| key| value|
+---+----+-------+
| 0|NULL|"hello"|
| 1|NULL|"world"|
+---+----+-------+

Exemplo 2 : Usando variant_explode_outer com um array de variantes vazio

Python
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('[]'))).show()
Output
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+

Exemplo 3 : Usando variant_explode_outer com um objeto variant

Python
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('{"a": true, "b": 3.14}'))).show()
Output
+---+---+-----+
|pos|key|value|
+---+---+-----+
| 0| a| true|
| 1| b| 3.14|
+---+---+-----+

Exemplo 4 : Usando variant_explode_outer com um objeto variant vazio

Python
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('{}'))).show()
Output
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+