Pyspark: Bagaimana cara membagi kolom yang dipisahkan pipa menjadi beberapa baris? [duplikat]
Aug 18 2020
Saya memiliki kerangka data yang berisi berikut ini:
movieId / movieName / genre
1 example1 action|thriller|romance
2 example2 fantastic|action
Saya ingin mendapatkan kerangka data kedua (dari yang pertama), yang berisi berikut ini:
movieId / movieName / genre
1 example1 action
1 example1 thriller
1 example1 romance
2 example2 fantastic
2 example2 action
Bagaimana cara melakukannya dengan menggunakan pyspark?
Jawaban
1 Shu Aug 18 2020 at 08:41
Gunakan split
fungsi akan mengembalikan fungsi array
kemudian explode
pada larik.
Example:
df.show(10,False)
#+-------+---------+-----------------------+
#|movieid|moviename|genre |
#+-------+---------+-----------------------+
#|1 |example1 |action|thriller|romance|
#+-------+---------+-----------------------+
from pyspark.sql.functions import *
df.withColumnRenamed("genre","genre1").\
withColumn("genre",explode(split(col("genre1"),'\\|'))).\
drop("genre1").\
show()
#+-------+---------+--------+
#|movieid|moviename| genre|
#+-------+---------+--------+
#| 1| example1| action|
#| 1| example1|thriller|
#| 1| example1| romance|
#+-------+---------+--------+
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'