基于以下数据框:
+---+-----+----+
| ID|Categ|Amnt|
+---+-----+----+
| 1| A| 10|
| 1| A| 5|
| 2| A| 56|
| 2| B| 13|
+---+-----+----+
我想从ID和分类中获取Amnt group列的总和。
+---+-----+-----+
| ID|Categ|Count|
+---+-----+-----+
| 1| A| 15 |
| 2| A| 56 |
| 2| B| 13 |
+---+-----+-----+
在SQL中我会做类似
的事情SELECT ID,
Categ,
SUM (Count)
FROM Table
GROUP BY ID,
Categ;
但是如何在Scala中执行此操作? 我试过了
DF.groupBy($"ID", $"Categ").sum("Count")
但这只是将Count列名改为sum(count)
而不是实际给出了计数总和。
由于
答案 0 :(得分:7)
也许你在总结错误的列,但是你的grougBy/sum
语句对我来说在语法上是正确的:
val df = Seq(
(1, "A", 10),
(1, "A", 5),
(2, "A", 56),
(2, "B", 13)
).toDF("ID", "Categ", "Amnt")
df.groupBy("ID", "Categ").sum("Amnt").show
// +---+-----+---------+
// | ID|Categ|sum(Amnt)|
// +---+-----+---------+
// | 1| A| 15|
// | 2| A| 56|
// | 2| B| 13|
// +---+-----+---------+