Hive查询regexp_extract失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive查询regexp_extract失败相关的知识,希望对你有一定的参考价值。
我正在尝试使用regexp_extract从我的表中的列(字符串数据类型)中提取我所需的数据,我使用此查询:
select regexp_extract(concat(column_name,;),'.*a2=?(.*?);',1) from table;
但是我收到一个错误:
FAILED: ParseException line 1:43 cannot recognize input near '.' '*' 'a2' in select expression
我有这个结局,有谁能告诉我我做错了什么?可以在列上使用regexp_replace吗?任何帮助,将不胜感激。
我正在使用hive版本0.13.1
答案
终于想通了,在蜂巢你需要逃脱分号。
希望这有助于某人。
编辑:这是有效的答案:
regexp_extract(concat(column_name,';'),'.*a2=?(.*?);',1)
我正在连接';'因为我的逻辑需要它。
另一答案
这应该在下面的脚本中用' 073'替换分号。
Apache Hive(版本1.2.1000.2.4.3.3-2)
select regexp_extract(concat("columna2=blablablatest",' 73'),'.*a2=?(.*?) 73',1);
以上是关于Hive查询regexp_extract失败的主要内容,如果未能解决你的问题,请参考以下文章
如何仅使用 Hive 中的 regexp_extract 函数提取标点符号
Hive str to array / regexp_extract
如何使用 talend 在 hive 上的分隔符 nth 之间进行 regexp_extract