【发布时间】:2017-03-17 16:21:37
【问题描述】:
我有一个像这样的 spark 数据框:
id | Operation | Value
-----------------------------------------------------------
1 | [Date_Min, Date_Max, Device] | [148590, 148590, iphone]
2 | [Date_Min, Date_Max, Review] | [148590, 148590, Good]
3 | [Date_Min, Date_Max, Review, Device] | [148590, 148590, Bad,samsung]
我期望的结果:
id | Operation | Value |
--------------------------
1 | Date_Min | 148590 |
1 | Date_Max | 148590 |
1 | Device | iphone |
2 | Date_Min | 148590 |
2 | Date_Max | 148590 |
2 | Review | Good |
3 | Date_Min | 148590 |
3 | Date_Max | 148590 |
3 | Review | Bad |
3 | Review | samsung|
我正在使用带有 pyspark 的 Spark 2.1.0。我试过这个solution ,但它只适用于一列。
谢谢
【问题讨论】:
-
我仍然无法找出完成这项特定任务的好方法。我尝试单独分解列
df1 = df.select('id', explode(col("Operation")))、df2 = df.select('id', explode(col("Value")))。但是,如何将两个数据帧水平堆叠在一起,并没有很好的解决方案。
标签: python apache-spark pyspark spark-dataframe rdd