我正在尝试在hive上使用regexp_extract。
我的数据本质上是不同的,例如:
a2=new something
a1=asdasdsad;a2=old something;a3=asadasdsadsa
a2=Some place;alksndklsand;a1=asdklsad
现在,我只需要提取a2数据。半冒号表示a2数据的结尾,但在每种情况下都可能不存在。
我一直在尝试的是连续';'到列然后运行regexp_extract
以提取“a2 =”和第一个“;”之间的数据(添加“;”以使逻辑与所有情况兼容)。
这是我的查询(我已经确认正则表达式有效):
select regexp_extract(concat(column_name,;),'.*a2=?(.*?);',1) from table;
但是我收到了一个错误:
FAILED: ParseException line 1:43 cannot recognize input near '.' '*' 'a2' in select expression
我对此有所了解,任何帮助都会受到赞赏。
我正在使用hive版本0.13.1