variant_explode

Odděluje objekt nebo pole varianty do více řádků obsahujících jeho pole nebo prvky. Jeho výsledné schéma je struct<pos int, key string, value variant>. pos je pozice pole nebo prvku v nadřazeného objektu nebo pole a value je hodnota pole/prvku. key je název pole při rozbalení objektu varianty nebo má hodnotu NULL při rozbalení pole varianty. Ignoruje všechny vstupy, které nejsou variantní pole nebo objekt, včetně hodnoty SQL NULL, varianty null a dalších hodnot variant.

Syntaxe

spark.tvf.variant_explode(input)

Parametry

Parameter Typ Description
input pyspark.sql.Column Vstupní sloupec hodnot, který se má rozbalit.

Examples

Příklad 1: Použití variant_explode s polem variant

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

Příklad 2: Použití variant_explode s objektem varianty

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

Příklad 3: Použití variant_explode s prázdným polem variant

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

Příklad 4: Použití variant_explode s prázdným objektem varianty

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