Aller au contenu principal

variant_explode

Sépare un objet/tableau de variante en plusieurs lignes contenant ses champs/éléments. Son schéma de résultats est struct<pos int, key string, value variant>. pos est la position du champ/élément dans son objet/tableau parent, et value est la valeur du champ/élément. key est le nom du champ lors de l'explosion d'un objet variant, ou est NULL lors de l'explosion d'un tableau variant. Il ignore toute entrée qui n'est pas un tableau/objet de variante, y compris SQL NULL, null de variante et toute autre valeur de variante.

Syntaxe

Python
spark.tvf.variant_explode(input)

parameter

parameter

Type

Description

input

pyspark.sql.Column

Colonne d'entrée de valeurs à éclater.

parameter

Type

Description

input

pyspark.sql.Column

Colonne d'entrée de valeurs à éclater.

Exemples

**Exemple 1** : Utilisation de variant_explode avec un tableau variant

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

**Exemple 2** : Utilisation de variant_explode avec un objet variant

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

Exemple 3 : Utilisation de variant_explode avec un tableau de variantes vide

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

**Exemple 4** : Utilisation de variant_explode avec un objet variant vide

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