我使用Spark 1.6.1和Java作爲編程語言。 下面的代碼是工作的罰款與dataframes:spark數據集組和由總和
simpleProf.groupBy(col("col1"), col("col2"))
.agg(
sum("CURRENT_MONTH"),
sum("PREVIOUS_MONTH")
);
但是,它不使用數據集,任何想法如何做同樣在Java數據集/火花?
乾杯
我使用Spark 1.6.1和Java作爲編程語言。 下面的代碼是工作的罰款與dataframes:spark數據集組和由總和
simpleProf.groupBy(col("col1"), col("col2"))
.agg(
sum("CURRENT_MONTH"),
sum("PREVIOUS_MONTH")
);
但是,它不使用數據集,任何想法如何做同樣在Java數據集/火花?
乾杯
這應該工作你的情況。
simpleProf.groupBy(simpleProf.col("col1"), simpleProf.col("col2"))
.agg(
sum(simpleProf.col("CURRENT_MONTH")),
sum(simpleProf.col("PREVIOUS_MONTH"))
);
或運行SQL查詢
simpleProf.registerTempTable("prof");
sqlContext.sql("SELECT sum(CURRENT_MONTH),sum(PREVIOUS_MONTH) FROM prof group by (CURRENT_MONTH, PREVIOUS_MONTH))
它不工作,在這個意義上,GROUPBY後,我收到了GroupedDataset對象,當我嘗試應用功能AGG它需要typedColumn而不是列。
啊,還有是因爲數據集和數據幀的星火2.X合併,那裏是一個groupBy
與關係列作品,並groupByKey
與類型化的列作品只是在這個有些混亂。因此,鑑於您在1.6中使用了明確的數據集,那麼解決方案是通過.as
方法來表示您的列。
sum("CURRENT_MONTH").as[Int]
你可以發佈你的代碼不工作嗎?這應該工作,所以這取決於你如何試圖做到這一點。 –
在我的情況下,它也可以。你可以粘貼你的例外? –
您能否詳細說明_「它不使用數據集」_?你怎麼知道它不能使用數據集?什麼是導致你相信的輸出? –