Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Trennt ein Variant-Objekt/Array in mehrere Zeilen, die die Felder/Elemente enthalten. Das Ergebnisschema lautet struct<pos int, key string, value variant>.
pos ist die Position des Felds/Elements in seinem übergeordneten Objekt/Array und value ist der Feld-/Elementwert.
key ist der Feldname beim Explodieren eines Variant-Objekts oder null, wenn ein Variant-Array explodiert wird. Im Gegensatz zu variant_explode wird NULL erzeugt, wenn die angegebene Variante kein Variantarray/Objekt ist, einschließlich SQL NULL, Variant NULL und anderen Variantenwerten.
Syntax
spark.tvf.variant_explode_outer(input)
Die Parameter
| Parameter | Typ | Description |
|---|---|---|
input |
pyspark.sql.Column |
Eingabespalte mit Werten, die explodiert werden sollen. |
Examples
Beispiel 1: Verwenden von variant_explode_outer mit einem Variantenarray
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"|
+---+----+-------+
Beispiel 2: Verwenden von variant_explode_outer mit einem leeren Variantenarray
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('[]'))).show()
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+
Beispiel 3: Verwenden von variant_explode_outer mit einem Variant-Objekt
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|
+---+---+-----+
Beispiel 4: Verwenden von variant_explode_outer mit einem leeren Variant-Objekt
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('{}'))).show()
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+