8

将示例代码DataFrame.groupBy()放入我的代码中,但它显示了max()sum()未定义的方法。

df.groupBy("department").agg(max("age"), sum("expense"));

如果我想使用max()sum()方法,我应该导入哪个 Java 包?

此示例代码的语法是否正确?

4

4 回答 4

10

导入对我不起作用。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");
于 2015-09-09T12:29:04.150 回答
7
import static org.apache.spark.sql.functions.* 

试试这个来导入所有功能,包括maxsum

于 2016-02-16T00:01:02.910 回答
3

尝试import org.apache.spark.sql.functions._

编辑。

从我注意到您正在使用 scala 语法,尝试通过 apply 方法访问列。对于 Java,您必须使用.col以下方法传递列:

df.groupBy("department").agg(max(df.col("age")), sum(df.col("expense")));

在此处查看 Java 示例

于 2015-09-08T06:35:46.677 回答
0

看来您正在搜索“org.apache.spark.sql.GroupedData”

要像编写代码一样在代码中使用它们,您需要静态导入。

链接到 Api

始终尝试先查看 API 描述。

于 2015-09-08T08:12:31.520 回答