当前位置: 首页 > 知识库问答 >
问题:

impala是否在where子句中支持java UDF

段干华皓
2023-03-14

我可以在hive和impala中使用基于java的UDF,但是在where子句中调用UDF时抛出ClassNotFound错误

当在where条款中引用时,UDF不能使用,但当它仅在select后面引用impala 2.9.0-cdh5时,UDF可以正常工作。12.1

在hive中,从表A中选择udfjson(备注,状态),其中udfjson(备注,状态)=0,name='test'工作正常,但在impala中不工作。

在impala中执行从表格A中选择udfjson(备忘录,状态),其中name='test'是可以的。UDF只能在impala中使用,不能在where子句中使用

这里是错误

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

where子句中用impala引用UDF是可能的吗?

共有1个答案

昝阳嘉
2023-03-14

使用子查询:

select * from
(
select udfjson(memo,state) as state from tableA where name = 'test'
)s
where s.state=0
 类似资料:
  • 问题内容: SQL Server是否支持SQL:1999标准的声明?例如查询 可以使用重写 问题答案: 也有一个针对此问题的Uservoice条目,您可以在其中投票将其包含在下一个版本中: 添加对ISO <独特谓词>的语言和优化程序支持

  • 问题内容: node.js是否支持let语句,类似于MDN上描述的内容?? 如果没有,是否可以通过自执行匿名功能或其他方式复制功能? 和/或还有另一个js环境 有和 像节点一样具有REPL?犀牛? 编辑 : 这个问题是很久以前问过的。截至2015年末,答案是“是的,是的”。io.js 3.3中默认包含Harmony功能,并且最近已在4.x版本中将其恢复到node.js。 问题答案: 我不认为Nod

  • 问题内容: 当在主键列上连接两个简单表并放置附加相等条件时,可以在连接本身或where子句中完成。 例如,以下等价。 我的问题是-是否有理由使用一种样式而不是另一种样式? …对比: 问题答案: 这是样式问题。通常,您需要将定义结果集的“形状”的条件放在FROM子句中(即那些控制每个表的哪些行应连接在一起以产生结果的条件),而那些条件将对结果进行 过滤 set应该在WHERE子句中。对于INNER

  • 问题内容: 如果列匹配,是否有很好的方法在SQL中表示选择特定的行,否则选择更通用的行?就像是: 我只希望它返回一个特定的记录(如果存在),否则,如果找不到特定的列匹配项,则返回通用的“ ALL”记录。看起来COALESCE与我正在寻找的相似,但我不知道在语法上如何工作。 问题答案: @Blorgbeard答案(使用前1个和排序依据)可能是最好的方法,但只是有所不同,您还可以使用子查询,但不存在:

  • 本章提供了有关如何使用JDBC应用程序从表中选择记录的示例。 这将在从表中选择记录时使用WHERE子句添加其他条件。 在执行以下示例之前,请确保您具备以下示例 - 要执行以下示例,您可以使用实际用户名和密码替换用户名和密码。 您的MySQL或您正在使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Import the

  • 问题内容: 我之前在一个PHP项目中工作过,其中准备好的语句使SELECT查询的速度提高了20%。 我想知道它是否适用于Python?我似乎找不到任何明确表明可以或不能做到的事情。 问题答案: 直接回答,不,不是。 joshperry的答案很好地解释了它的作用。 从eugene y答案到类似问题, 检查MySQLdb 包注释: 在MySQLdb中,通过转义字符串然后将其盲目插入到查询中来进行“参数