【发布时间】:2018-12-16 19:20:24
【问题描述】:
我正在用 Java 编写 UDF。
我想对DateSet<Row> 执行更复杂的操作。为了那个原因
我想我需要将 DataSet<Row> 作为 UDF 的输入传递并返回输出。这是我的代码:
UDF1<Dataset<Row>,String> myUDF = new UDF1<Dataset<Row>,String>() {
public String call(Dataset<Row> input) throws Exception {
System.out.println(input);
return "test";
}
};
// Register the UDF with our SQLContext
spark.udf().register("myUDF", myUDF, DataTypes.StringType); {
但是当我尝试使用 myUDF 时,似乎 callUDF 函数只接受 Column 而不是 DataSet<Row>。
谁能帮助我将DataSet<Row> 作为输入参数传递给UDF?有没有其他方法可以在 Spark SQL 中调用我的 UDF?
【问题讨论】:
-
我已经检查过了 那并不能解决我的问题。这是在 Scala 中实现的。我正在寻找 java 中的东西。
-
真的没有太大区别。你需要
struct(all columns go here)。 -
@user10465355 这可能是一个解决方案,但会改变问题的语义(即转换数据集)。
标签: java apache-spark apache-spark-sql