我正在尝试使用JAVA在Spark上编写groupBy。在SQL中,它看起来像这样:
SELECT id, count(id) as count, max(date) maxdate
FROM table
GROUP BY id;
但是这个查询的Spark/JAVA风格等价物是什么呢?假设变量table
是一个数据框,为了看到与SQL查询的关系。我想到的是:
table = table.select(table.col("id"), (table.col("id").count()).as("count"), (table.col("date").max()).as("maxdate")).groupby("id")
显然这是不正确的,因为你不能在列上使用像.count
或.max
这样的聚合函数,只能对数据帧使用。那么在Spark JAVA中该怎么做呢?
谢谢!