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

hive通过regexp_extract从字典串中提取密钥?

大数据之Hive:regexp_extract函数

大查询标准与旧语法