我使用Spark 1.6.1和Java作为编程语言。 以下代码适用于 dataframes :
simpleProf.groupBy(col("col1"), col("col2") )
.agg(
sum("CURRENT_MONTH"),
sum("PREVIOUS_MONTH")
);
但是,它没有使用数据集,任何想法如何对Java / Spark中的数据集做同样的事情?
干杯
答案 0 :(得分:1)
它不起作用,在groupBy之后我得到一个GroupedDataset对象,当我尝试应用函数agg时,它需要typedColumn而不是column。
啊,由于Spark 2.x中数据集和DataFrame的合并,其中有一个groupBy
可以处理关系列,groupByKey
可以使用键入的列。因此,假设您在1.6中使用显式数据集,那么解决方案是通过.as
方法对您的列进行典型化。
sum("CURRENT_MONTH").as[Int]