配置单元查询 regexp_extract 失败

Hive query regexp_extract failing

我正在尝试使用 regexp_extract 从我的 table 中的列(字符串数据类型)中提取我需要的数据,我正在使用此查询:

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",'3'),'.*a2=?(.*?)3',1);