Scala API表示register(..)接受returnType。但是,当我进行编译时,出现以下错误。
val spark = SparkSession
.builder()
.config("spark.master", "local[*]")
.config("spark.serializer", classOf[KryoSerializer].getName)
.getOrCreate()
spark.udf.register("doIt", do_it_func, ArrayType(StructType(Seq(
StructField("V1", DoubleType),
StructField("V2", DoubleType),
StructField("V3", DoubleType)))))
def do_it_func: String => Seq[(Option[Double], Option[Double], Option[Double])] = {
(s, r1, r2) => Seq((None, None, None))
}
error: overloaded method value register with
alternatives:[ERROR] (name: String,f:
org.apache.spark.sql.api.java.UDF22[_, _, _, _, _, _, _, _, _, _, _, _, _,
_, _, _, _, _, _, _, _, _, _],returnType:
org.apache.spark.sql.types.DataType)Unit [ERROR] (name: String,f:
org.apache.spark.sql.api.java.UDF21[_, _, _, _, _, _, _, _, _, _, _, _, _,
_, _, _, _, _, _, _, _, _],returnType:
org.apache.spark.sql.types.DataType)Unit
为什么我不能传递returnType?
谢谢, 久南