पिसपार्क: पाइप से अलग किए गए कॉलम को कई पंक्तियों में कैसे विभाजित किया जाए? [डुप्लिकेट]
मेरे पास एक डेटाफ्रेम है जिसमें निम्नलिखित शामिल हैं:
movieId / movieName / genre
1 example1 action|thriller|romance
2 example2 fantastic|action
मैं दूसरा डेटाफ़्रेम (पहले एक से) प्राप्त करना चाहूंगा, जिसमें निम्नलिखित शामिल हैं:
movieId / movieName / genre
1 example1 action
1 example1 thriller
1 example1 romance
2 example2 fantastic
2 example2 action
हम इसे pyspark का उपयोग कैसे कर सकते हैं?
जवाब
1 Shu
उपयोग split
फ़ंक्शन सरणी पर एक array
तत्कालीन explode
फ़ंक्शन लौटाएगा ।
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|
#+-------+---------+--------+