如何将一列拆分为列表并将其保存到新的 .csv 文件中。

huangapple go评论90阅读模式
英文:

How to split a column into a list and save it into a new .csv file

问题

我有一个数据框,有两列:学生ID和他们的课程。课程列有多个由";"分隔的值。如何将课程拆分为列表,并将每对(学生ID、课程1)、(学生ID、课程2)保存到一个新的CSV文件中?

英文:

I have a data frame with two columns: student ID and their courses. The course column has multiple values separated by ";". How can I split genres into a list and save every pair (studentID, genre1), (studetID, genre2) into a new CSV file?

答案1

得分: 1

你可以尝试使用 splitexplode 函数:

  1. val df = Seq((1, "a;b;c")).toDF("id", "values")
  2. df.show()
  3. val df2 = df.select($"id", explode(split($"values", ";")).as("value"))
  4. df2.show()
  5. df2.write.option("header", "true").csv("/path/to/csv");

+---+------+
| id|values|
+---+------+
| 1| a;b;c|
+---+------+

+---+-----+
| id|value|
+---+-----+
| 1| a|
| 1| b|
| 1| c|
+---+-----+

英文:

You could try split and explode :

  1. val df = Seq((1,("a;b;c"))).toDF("id","values")
  2. df.show()
  3. val df2 = df.select($"id", explode(split($"values",";")).as("value"))
  4. df2.show()
  5. df2.write.option("header", "true").csv("/path/to/csv");
  6. +---+------+
  7. | id|values|
  8. +---+------+
  9. | 1| a;b;c|
  10. +---+------+
  11. +---+-----+
  12. | id|value|
  13. +---+-----+
  14. | 1| a|
  15. | 1| b|
  16. | 1| c|
  17. +---+-----+

huangapple
  • 本文由 发表于 2020年3月16日 21:21:58
  • 转载请务必保留本文链接:https://go.coder-hub.com/60706801.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定