Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Separa un objeto o matriz variant en varias filas que contienen sus campos o elementos. Su esquema de resultados es struct<pos int, key string, value variant>.
pos es la posición del campo o elemento en su objeto o matriz primario, y value es el valor de campo o elemento.
key es el nombre de campo al explotar un objeto variant o es NULL al explotar una matriz variant. A diferencia de variant_explode, si la variante especificada no es una matriz o objeto variant, incluidos SQL NULL, variant null y cualquier otro valor variant, se genera NULL.
Syntax
spark.tvf.variant_explode_outer(input)
Parámetros
| Parámetro | Tipo | Description |
|---|---|---|
input |
pyspark.sql.Column |
Columna de entrada de valores que se va a explotar. |
Examples
Ejemplo 1: Uso de variant_explode_outer con una matriz variant
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('["hello", "world"]'))).show()
+---+----+-------+
|pos| key| value|
+---+----+-------+
| 0|NULL|"hello"|
| 1|NULL|"world"|
+---+----+-------+
Ejemplo 2: Uso de variant_explode_outer con una matriz de variantes vacía
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('[]'))).show()
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+
Ejemplo 3: Uso de variant_explode_outer con un objeto variant
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('{"a": true, "b": 3.14}'))).show()
+---+---+-----+
|pos|key|value|
+---+---+-----+
| 0| a| true|
| 1| b| 3.14|
+---+---+-----+
Ejemplo 4: Uso de variant_explode_outer con un objeto variant vacío
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('{}'))).show()
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+