Hive查询regexp_extract失败

问题描述 投票:0回答:2

我正在尝试使用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

regex hadoop hive
2个回答
1
投票

终于想通了,在蜂巢你需要逃脱分号。

希望这有助于某人。

编辑:这是有效的答案:

regexp_extract(concat(column_name,'\;'),'.*a2=?(.*?)\;',1)

我正在连接';'因为我的逻辑需要它。


0
投票

这应该在下面的脚本中用'\ 073'替换分号。

Apache Hive(版本1.2.1000.2.4.3.3-2)

select regexp_extract(concat("columna2=blablablatest",'\073'),'.*a2=?(.*?)\073',1);
© www.soinside.com 2019 - 2024. All rights reserved.