将DataFrame.groupBy()
的示例代码放入我的代码中,但它显示了max()
和sum()
的方法未定义。
df.groupBy("department").agg(max("age"), sum("expense"));
如果我想使用max()
和sum()
方法,我应该导入哪个Java包?
这个示例代码的语法正确吗?
导入对我不起作用。Eclipse IDE仍然显示编译错误。
但是下面的方法调用工作
df.groupBy("Gender").agg(org.apache.spark.sql.functions.max(df.col("Id")), org.apache.spark.sql.functions.sum(df.col("Income")));
如果聚合只涉及一个字段,我们也可以使用以下语法,
df.groupBy("Gender").max("Income");
import static org.apache.spark.sql.functions.*
尝试导入包括max
和sum
在内的所有函数
尝试import org.apache.spark.sql.functions._
编辑
据我所知,您正在使用scala语法,试图通过apply方法访问列。对于Java,您必须像.col
方法这样传递列:
df.groupBy("department").agg(max(df.col("age")), sum(df.col("expense")));
请参阅此处的Java示例
您似乎在搜索"org.apache.spark.sql.GroupedData">
要像编写代码一样在代码中使用它们,需要静态导入。
Api 链接
一定要先看看API的描述。