【发布时间】:2022-04-14 23:38:03
【问题描述】:
Java 代码 -
package ClusterAlgoCall2;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.api.java.UDF3;
import org.apache.spark.sql.types.DataTypes;
public class ClusterAlgocall_Main3 {
public static void main(String[] args) {
SparkSession spark = SparkSession.builder().appName("someappname").enableHiveSupport().getOrCreate();
UDF3 UDFCosinetoTxt = new UDF3<String, String, String, String>() {
public String call(String col1, String col2 , String col3) throws Exception {
return col3 ;
}
};
spark.udf().register("UDFCosinetoTxt", UDFCosinetoTxt, DataTypes.StringType);
}
}
构建它并为它创建一个罐子。尝试在 spark-SQL 中使用这个 jar 使用 -
创建临时函数后add jar s3://xxxx/jar/ClusterAlgoCall2.jar ;
CREATE TEMPORARY FUNCTION ClusterAlgo as 'ClusterAlgoCall2.ClusterAlgocall_Main3' using jar 's3://xxxx/jar/ClusterAlgoCall2.jar';
运行查询时出错 -
select ClusterAlgo2(col1,col2,col3) from clusteralgo_test ;
Error in query: No handler for UDF/UDAF/UDTF 'ClusterAlgoCall2.ClusterAlgocall_Main3'; line 1 pos 7
【问题讨论】:
-
嗨@aggrawalnikhil02,您找到解决方案了吗?我也有同样的问题。。
标签: java apache-spark hive apache-spark-sql