Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengembalikan DataFrame yang berisi baris baru untuk setiap elemen dalam array atau peta yang diberikan. Nama kolom default adalah col untuk elemen dalam array dan key dan value untuk elemen dalam peta. Untuk menggunakan nama kolom yang berbeda, panggil toDF() pada DataFrame yang dikembalikan.
Syntax
spark.tvf.explode(collection)
Parameter-parameternya
| Pengaturan | Tipe | Description |
|---|---|---|
collection |
pyspark.sql.Column |
Kolom target untuk dikerjakan. |
Pengembalian Barang
pyspark.sql.DataFrame: DataFrame dengan baris baru untuk setiap elemen.
Examples
Contoh 1: Meledakkan kolom array
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).show()
+---+
|col|
+---+
| 1|
| 2|
| 3|
+---+
Contoh 2: Meledakkan kolom peta
import pyspark.sql.functions as sf
spark.tvf.explode(
sf.create_map(sf.lit("a"), sf.lit("b"), sf.lit("c"), sf.lit("d"))
).show()
+---+-----+
|key|value|
+---+-----+
| a| b|
| c| d|
+---+-----+
Contoh 3: Meledakkan array kolom struct
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(
sf.named_struct(sf.lit("a"), sf.lit(1), sf.lit("b"), sf.lit(2)),
sf.named_struct(sf.lit("a"), sf.lit(3), sf.lit("b"), sf.lit(4))
)).select("col.*").show()
+---+---+
| a| b|
+---+---+
| 1| 2|
| 3| 4|
+---+---+
Contoh 4: Meledakkan kolom array kosong
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array()).show()
+---+
|col|
+---+
+---+
Contoh 5: Meledakkan kolom peta kosong
import pyspark.sql.functions as sf
spark.tvf.explode(sf.create_map()).show()
+---+-----+
|key|value|
+---+-----+
+---+-----+
Contoh 6: Mengganti nama kolom default
Karena spark.tvf.explode mengembalikan DataFrame, gunakan toDF() untuk mengganti nama kolom output.
.alias() tidak berpengaruh pada kolom yang meledak.
import pyspark.sql.functions as sf
# Array: rename the single output column
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).toDF("number").show()
+------+
|number|
+------+
| 1|
| 2|
| 3|
+------+
# Map: rename both output columns
spark.tvf.explode(
sf.create_map(sf.lit("a"), sf.lit("b"), sf.lit("c"), sf.lit("d"))
).toDF("letter", "pair").show()
+------+----+
|letter|pair|
+------+----+
| a| b|
| c| d|
+------+----+