基于Spark Dataframe

时间:2017-06-14 18:16:29

标签: scala apache-spark spark-dataframe

考虑以下数据框:

+-------+-----------+-------+
|    rid|  createdon|  count|
+-------+-----------+-------+
|    124| 2017-06-15|     1 |
|    123| 2017-06-14|     2 |
|    123| 2017-06-14|     1 |
+-------+-----------+-------+

我需要在countcreatedon相同的行中添加rid列。

因此,结果数据框应如下:

+-------+-----------+-------+
|    rid|  createdon|  count|
+-------+-----------+-------+
|    124| 2017-06-15|     1 |
|    123| 2017-06-14|     3 |
+-------+-----------+-------+

我使用的是Spark 2.0.2。

我已经尝试过agg,条件选择等,但找不到解决方案。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

试试这个

import org.apache.spark.sql.{functions => func}
df.groupBy($"rid", $"createdon").agg(func.sum($"count").alias("count"))

答案 1 :(得分:0)

这应该做你想要的:

import org.apache.spark.sql.functions.sum

df
.groupBy($"rid",$"createdon")
.agg(sum($"count").as("count"))
.show