spark数据集group by和sum

时间:2017-06-21 16:25:33

标签: java apache-spark dataframe dataset

我使用Spark 1.6.1和Java作为编程语言。 以下代码适用于 dataframes

simpleProf.groupBy(col("col1"), col("col2") )
                .agg(
                     sum("CURRENT_MONTH"),
                     sum("PREVIOUS_MONTH")
                );

但是,它没有使用数据集,任何想法如何对Java / Spark中的数据集做同样的事情?

干杯

1 个答案:

答案 0 :(得分:1)

  

它不起作用,在groupBy之后我得到一个GroupedDataset对象,当我尝试应用函数agg时,它需要typedColumn而不是column。

啊,由于Spark 2.x中数据集和DataFrame的合并,其中有一个groupBy可以处理关系列,groupByKey可以使用键入的列。因此,假设您在1.6中使用显式数据集,那么解决方案是通过.as方法对您的列进行典型化。

sum("CURRENT_MONTH").as[Int]