【发布时间】:2017-06-05 21:29:36
【问题描述】:
val df = (Seq((1, "a", "10"),(1,"b", "12"),(1,"c", "13"),(2, "a", "14"),
(2,"c", "11"),(1,"b","12" ),(2, "c", "12"),(3,"r", "11")).
toDF("col1", "col2", "col3"))
所以我有一个包含 3 列的 spark 数据框。
+----+----+----+
|col1|col2|col3|
+----+----+----+
| 1| a| 10|
| 1| b| 12|
| 1| c| 13|
| 2| a| 14|
| 2| c| 11|
| 1| b| 12|
| 2| c| 12|
| 3| r| 11|
+----+----+----+
我的要求实际上是我需要执行两个级别的groupby,如下所述。
1 级: 如果我在 col1 上做 groupby 并做 Col3 的总和。我将低于两列。 1. col1 2.总和(col3) 我将在这里松开 col2。
2 级: 如果我想再次对 col1 和 col2 进行分组并计算 Col3 的总和,我将得到 3 列以下。 1. col1 2. col2 3. sum(col3)
我的要求实际上是我需要执行两个级别的 groupBy 并将这两列(level1 的 sum(col3),level2 的 sum(col3))放在最后一个数据帧中。
我该怎么做,谁能解释一下?
火花:1.6.2 斯卡拉:2.10
【问题讨论】:
标签: scala apache-spark