开发者社区> 问答> 正文

如何在UDF中传递Row?

社区小助手 2018-12-19 17:22:19 325

我正在用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?

SQL 分布式计算 Java Spark
分享到
取消 提交回答
全部回答(1)
  • 社区小助手
    2019-07-17 23:23:06

    这里有几个问题。

    首先,UDF是一个可以使用的函数(里面的值)Columns。从某种意义上说,您可以使用struct函数来组合所需的列以假装您使用整个数据集。

    但是,如果您想使用整个数据集,那么您真的需要一个简单接受数据集的纯Java / Scala方法。Spark可以做些什么。它只是一个Java / Scala编程。

    0 0
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

推荐文章
相似问题