Impala是否在where子句中支持Java UDF

时间:2019-06-28 10:44:47

标签: user-defined-functions impala

我可以在蜂巢和黑斑羚中使用基于Java的UDF,但是在ClassNotFound子句中调用udf时抛出where错误

where子句中引用时,UDF无法使用,但仅在Impala 2.9.0-cdh5.12.1

中在select后面引用时,UDF才能正常工作

在蜂巢select udfjson(memo,state) from tableA where udfjson(memo,state) = 0 and name = 'test'中可以正常工作,但在黑斑羚中不能正常工作。

在impala中执行select udfjson(memo,state) from tableA where name = 'test'是可以的。 UDF只能在Impala中使用,而不能在where子句中使用

这是错误

Error(255): Unknown error 255
Root cause: NoClassDefFoundError: org/apache/hadoop/hdfs/DFSInputStream$ByteArrayStrategy

是否可以在where子句中使用impala引用UDF?

1 个答案:

答案 0 :(得分:1)

使用子查询:

select * from
(
select udfjson(memo,state) as state from tableA where name = 'test'
)s
where s.state=0