我编写了一个Java Spark SQL UDF,如下所示。
import org.apache.spark.sql.api.java.UDF1;
public class LowerCase_UDF implements UDF1<String,String>
{
@Override
public String call(String t1) throws Exception
{
String output="";
output=t1.toLowerCase();
return output;
}
}
在spark中注册此功能的过程是什么? 如果我运行sqlContext.udf.register(&#34; LowerCaseUDF&#34;,调用),它会抛出异常&#34;错误:notfound:value call&#34;
我已将生成的jar文件添加到spark-client / lib文件夹中。但它似乎没有用。出于某些原因,我们希望函数使用Java。任何有关这方面的帮助将不胜感激。谢谢
答案 0 :(得分:0)
要使用Java在Spark SQL中注册UDF,可以使用以下代码:
test = { {1}, {{4,5},{2,{0,3}}} }
然后你可以像这样使用它:
sparkSession.udf().register("lowercase_udf", new LowerCase_UDF(), DataTypes.StringType);
这将为您提供如下输出:
dataset.withColumn("lower", functions.callUDF("lowercase_udf", functions.col("value")));
我希望它有所帮助!