我正在尝试使用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",'\073'),'.*a2=?(.*?)\073',1);