【发布时间】:2018-02-02 14:36:21
【问题描述】:
我有一个如下的DataFrame
profDF
+---+------------+---------+------+
| ID| Name| Occ|Salary|
+---+------------+---------+------+
| 1| James|Detective| 30000|
| 2| Victor| Salesman| 50000|
| 3| Doris| CEO| 20000|
+---+------------+---------+------+
我想添加一个新列,其中包含每个人的最高薪水和薪水之间的差异。
+---+------------+---------+------+-------+
| ID| Name| Occ|Salary|DiffMax|
+---+------------+---------+------+-------+
| 1| James|Detective| 30000| 20000|
| 2| Victor| Salesman| 50000| 0|
| 3| Doris| CEO| 20000| 30000|
+---+------------+---------+------+-------+
做到这一点的一种方法是通过执行groupBy("ID") 和max 创建另一个DF,然后在“ID”上使用persDF 加入这个DF,但groupBy 不会给我所有行。
另一种方法是使用withColumn("DiffMax", ...)。但我似乎无法找到 withColumn 的第二个参数,这会给我想要的结果。
有人可以帮我解决这个问题吗?我正在使用 Spark-1.6.0
【问题讨论】:
标签: scala apache-spark spark-dataframe