我正在用Java编写UDF。
我想对它进行更复杂的操作DateSet。为此,我认为我需要DataSet作为输入传递给我的UDF并返回输出。这是我的代码:
UDF1,String> myUDF = new UDF1,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函数只接受a Column而不是a DataSet。
任何人都可以帮助我如何DataSet将输入参数传递给UDF?有没有其他方法可以在Spark SQL中调用我的UDF?
这里有几个问题。
首先,UDF是一个可以使用的函数(里面的值)Columns。从某种意义上说,您可以使用struct函数来组合所需的列以假装您使用整个数据集。
但是,如果您想使用整个数据集,那么您真的需要一个简单接受数据集的纯Java / Scala方法。Spark可以做些什么。它只是一个Java / Scala编程。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。