Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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. Na rozdíl od variant_explode, pokud daná varianta není variantní pole nebo objekt, včetně hodnoty SQL NULL, varianty null a dalších hodnot variant, pak se vytvoří hodnota NULL.
Syntaxe
spark.tvf.variant_explode_outer(input)
Parametry
| Parameter | Typ | Description |
|---|---|---|
input |
pyspark.sql.Column |
Vstupní sloupec hodnot, který se má rozbalit. |
Examples
Příklad 1: Použití variant_explode_outer s polem 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"|
+---+----+-------+
Příklad 2: Použití variant_explode_outer s prázdným polem variant
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('[]'))).show()
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+
Příklad 3: Použití variant_explode_outer s objektem varianty
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|
+---+---+-----+
Příklad 4: Použití variant_explode_outer s prázdným objektem varianty
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('{}'))).show()
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+