Hive regexp_extract 来自字符串的数值

Hive regexp_extract numeric value from a string

我有一个 table 作为:

column1                         
A.A=123; B.B=124; C.C=125         
C.C=127     

我正在尝试从 table 中获取数值。预期输出为

A -> 123 / B -> 124 等等

我正在尝试使用 regexp_extract

有什么建议吗?

如果分隔符是固定的 - '; '键值对之间和键值对之间的'=',可以使用str_to_map函数:

select str_to_map('A.A=123; B.B=124; C.C=125','; ','=')['A.A'] as A --returns 123

如果您更喜欢正则表达式:

select 
regexp_extract('A.A=123; B.B=124; C.C=125','A.A=(\d*)',1) as A, --returns 123
regexp_extract('A.A=123; B.B=124; C.C=125','B.B=(\d*)',1) as B --returns 124

等等

为了不区分大小写,将 (?i) 添加到正则表达式

select regexp_extract('A.A=123; b.b=124; C.C=125','(?i)B.B=(\d*)',1) as B --returns 124