Bagikan melalui


variant_explode

Memisahkan objek/array varian menjadi beberapa baris yang berisi bidang/elemennya. Skema hasilnya adalah struct<pos int, key string, value variant>. pos adalah posisi bidang/elemen dalam objek/array induknya, dan value merupakan nilai bidang/elemen. key adalah nama bidang saat meledakkan objek varian, atau NULL saat meledakkan array varian. Ini mengabaikan input apa pun yang bukan array/objek varian, termasuk SQL NULL, varian null, dan nilai varian lainnya.

Syntax

spark.tvf.variant_explode(input)

Parameter-parameternya

Pengaturan Tipe Description
input pyspark.sql.Column Kolom input nilai yang akan meledak.

Examples

Contoh 1: Menggunakan variant_explode dengan array varian

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"|
+---+----+-------+

Contoh 2: Menggunakan variant_explode dengan objek varian

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|
+---+---+-----+

Contoh 3: Menggunakan variant_explode dengan array varian kosong

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

Contoh 4: Menggunakan variant_explode dengan objek varian kosong

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