【发布时间】:2018-08-30 22:05:40
【问题描述】:
DF1 是我现在拥有的,我想让 DF1 看起来像 DF2。
期望的输出:
DF1 DF2
+---------+-------------------+ +---------+------------------------------+
| ID | Category | | ID | Category |
+---------+-------------------+ +---------+------------------------------+
| 31898 | Transfer | | 31898 | Transfer (e-Transfer) |
| 31898 | e-Transfer | =====> | 32614 | Transfer (e-Transfer + IMT) |
| 32614 | Transfer | =====> | 33987 | Transfer (IMT) |
| 32614 | e-Transfer + IMT | +---------+------------------------------+
| 33987 | Transfer |
| 33987 | IMT |
+---------+-------------------+
代码:
val df = DF1.groupBy("ID").agg(collect_set("Category").as("CategorySet"))
val DF2 = df.withColumn("Category", $"CategorySet"(0) ($"CategorySet"(1)))
我应该如何解决这个问题?如果还有其他更好的方法来做同样的事情,我愿意接受。提前谢谢你
【问题讨论】:
标签: scala apache-spark dataframe