Java Spark Dataframe API(1.4.1)中未定义的max()和sum()方法

Jin*_*ang 7 java apache-spark-sql spark-dataframe

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

df.groupBy("department").agg(max("age"), sum("expense"));
Run Code Online (Sandbox Code Playgroud)

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

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

小智 9

导入对我不起作用.Eclipse IDE仍然显示编译错误.

但是以下方法调用起作用

df.groupBy("Gender").agg(org.apache.spark.sql.functions.max(df.col("Id")), org.apache.spark.sql.functions.sum(df.col("Income")));
Run Code Online (Sandbox Code Playgroud)

如果聚合只涉及一个字段,我们也可以使用以下语法,

df.groupBy("Gender").max("Income");
Run Code Online (Sandbox Code Playgroud)


Gan*_*nan 6

import static org.apache.spark.sql.functions.* 
Run Code Online (Sandbox Code Playgroud)

试试这个导入包括max和的所有功能sum


Nie*_*and 3

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

编辑。

据我所知,您正在使用 scala 语法,尝试通过 apply 方法访问列。对于 Java,您必须像.col这样的方法传递列:

df.groupBy("department").agg(max(df.col("age")), sum(df.col("expense")));
Run Code Online (Sandbox Code Playgroud)

请参阅此处的Java 示例