Bagikan melalui


explode_outer

Mengembalikan baris baru untuk setiap elemen dalam array atau peta yang diberikan. Tidak seperti meledak, jika array/peta null atau kosong maka null diproduksi. Menggunakan nama col kolom default untuk elemen dalam array dan key dan value untuk elemen dalam peta kecuali ditentukan sebaliknya.

Syntax

from pyspark.sql import functions as sf

sf.explode_outer(col)

Parameter-parameternya

Pengaturan Tipe Description
col pyspark.sql.Column atau nama kolom Kolom target untuk dikerjakan.

Pengembalian Barang

pyspark.sql.Column: satu baris per item array atau nilai kunci peta.

Examples

Contoh 1: Menggunakan kolom array

from pyspark.sql import functions as sf
df = spark.sql('SELECT * FROM VALUES (1,ARRAY(1,2,3,NULL)), (2,ARRAY()), (3,NULL) AS t(i,a)')
df.select('*', sf.explode_outer('a')).show()
+---+---------------+----+
|  i|              a| col|
+---+---------------+----+
|  1|[1, 2, 3, NULL]|   1|
|  1|[1, 2, 3, NULL]|   2|
|  1|[1, 2, 3, NULL]|   3|
|  1|[1, 2, 3, NULL]|NULL|
|  2|             []|NULL|
|  3|           NULL|NULL|
+---+---------------+----+

Contoh 2: Menggunakan kolom peta

from pyspark.sql import functions as sf
df = spark.sql('SELECT * FROM VALUES (1,MAP(1,2,3,4,5,NULL)), (2,MAP()), (3,NULL) AS t(i,m)')
df.select('*', sf.explode_outer('m')).show(truncate=False)
+---+---------------------------+----+-----+
|i  |m                          |key |value|
+---+---------------------------+----+-----+
|1  |{1 -> 2, 3 -> 4, 5 -> NULL}|1   |2    |
|1  |{1 -> 2, 3 -> 4, 5 -> NULL}|3   |4    |
|1  |{1 -> 2, 3 -> 4, 5 -> NULL}|5   |NULL |
|2  |{}                         |NULL|NULL |
|3  |NULL                       |NULL|NULL |
+---+---------------------------+----+-----+