Java 如何使用callUDF?
我正在使用Spark 2.3.0并尝试使用callUDF。但是我得到一个错误,第二个参数的类型是错误的。它需要Java 如何使用callUDF?,java,apache-spark,Java,Apache Spark,我正在使用Spark 2.3.0并尝试使用callUDF。但是我得到一个错误,第二个参数的类型是错误的。它需要scala.collection.Seq,但col()函数返回org.apache.spark.sql.column 我见过很多人这样安全地使用callUDF(“udfName”),col(“colName”),但为什么我不能呢 public static UDF1<String,Option<Integer>>normSex = new UDF1<Stri
scala.collection.Seq
,但col()
函数返回org.apache.spark.sql.column
我见过很多人这样安全地使用callUDF(“udfName”),col(“colName”),但为什么我不能呢
public static UDF1<String,Option<Integer>>normSex = new UDF1<String, Option<Integer>>() {
@Override
public Option<Integer> call(String d) throws Exception {
if (null == d)
return Option.apply(null);
else{
if(d.equals("male"))
return Some.apply(0);
else
return Some.apply(1);
}
}
};
当我试着这样使用它的时候
Dataset<Row> projection=df.select(callUDF("normSex",col("Sex)));
Dataset projection=df.select(callUDF(“normsecx”),col(“Sex”);
这就是我得到错误的地方:
错误:java:不兼容的类型:org.apache.spark.sql.Column无法转换为scala.collection.Seq
Dataset<Row> projection=df.select(callUDF("normSex",col("Sex)));