Hive 3.1.2 UDAF 在 Spark 3.0.0 中不起作用
Hive 3.1.2 UDAFs not working in Spark 3.0.0
pyspark.sql.utils.AnalysisException: No handler for UDF/UDAF/UDTF 'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFHistogramNumeric': java.lang.NoSuchMethodException: org.apache.hadoop.hive.ql.udf.generic.SimpleGenericUDAFParameterInfo.<init>([Lorg.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;, boolean, boolean); line 4 pos 29
当我尝试在 Spark SQL 中使用 Hive 中的 histogram_numeric 时出现上述错误 SQL。
我已经包含了相关的 hive-exec
jar,启用了配置单元支持,我开始怀疑目前是否不支持它。
蜂巢版本:3.1.2
星火版本:3.0.0
如果有人在 Spark 3.0.0 中注册 Hive UDAF 时有一个适用于他们的简单代码段,那也会非常有用
我尝试通过 hiveCtx.udf.registerJavaUDAF 注册 hive uadf,但没有成功。
hiveCtx.udf.registerJavaUDAF("histogram_numeric", "org.apache.hadoop.hive.ql.udf.generic.GenericUDAFHistogramNumeric")
那里有实现“histogram_numeric”的配置单元 class,但它不符合 spark 的 JavaUADF 接口。
但我发现数据框的 selectExpr 代码有效。不知道为什么。
users_spark_df.selectExpr('histogram_numeric(age, 2)')
Making histogram with Spark DataFrame column
pyspark.sql.utils.AnalysisException: No handler for UDF/UDAF/UDTF 'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFHistogramNumeric': java.lang.NoSuchMethodException: org.apache.hadoop.hive.ql.udf.generic.SimpleGenericUDAFParameterInfo.<init>([Lorg.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;, boolean, boolean); line 4 pos 29
当我尝试在 Spark SQL 中使用 Hive 中的 histogram_numeric 时出现上述错误 SQL。
我已经包含了相关的 hive-exec
jar,启用了配置单元支持,我开始怀疑目前是否不支持它。
蜂巢版本:3.1.2 星火版本:3.0.0
如果有人在 Spark 3.0.0 中注册 Hive UDAF 时有一个适用于他们的简单代码段,那也会非常有用
我尝试通过 hiveCtx.udf.registerJavaUDAF 注册 hive uadf,但没有成功。
hiveCtx.udf.registerJavaUDAF("histogram_numeric", "org.apache.hadoop.hive.ql.udf.generic.GenericUDAFHistogramNumeric")
那里有实现“histogram_numeric”的配置单元 class,但它不符合 spark 的 JavaUADF 接口。
但我发现数据框的 selectExpr 代码有效。不知道为什么。
users_spark_df.selectExpr('histogram_numeric(age, 2)')
Making histogram with Spark DataFrame column