irpas技术客

hive和impala使用udf_HoweSea

未知 4274

1、Hive创建udf函数

DROP FUNCTION IF EXISTS default.rsa_encoder; CREATE function default.rsa_encoder as 'com.howe.hive.udf.encoder.RsaEncoder' using jar 'hdfs://hacluster/user/hive/udf/MyUdf.jar';

2、Impala创建udf函数

CREATE function rsa_decoder_impala location 'hdfs://hacluster/user/hive/udf/MyUdf.jar' symbol='com.howe.impala.udf.encoder.RsaDecoder';

3、查看函数

show functions like '%coder';

然而并不能看到自定义函数,可以这样查看

desc function default.rsa_encoder;

4、有时候在hive上创建了函数,在impala找不到

invalidate metadata;

5、在hive中创建的函数,impala使用就报错

ERROR: AnalysisException: default.rsa_encoder() unknown

在impala中创建这个函数,也报错

?ERROR: CatalogException: No compatible function signatures found in class:?

根据排查,最后发现是 impala的udf支持的接口是?org.apache.hadoop.hive.ql.exec.UDF

而udf实现的接口是?org.apache.hadoop.hive.ql.udf.generic.GenericUDF

修改实现的接口,完美解决


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #function #IF #EXISTS