需要使用regexp_extract
提取Hive查询来提取字段的一部分(类型字符串)。其中的值是冒号分隔
Field1 ( String)
----------------
AAA:123,BBB:345,CCC:456,DDD:789,EEE:434
AAA:343,BBB:222,DDD:989,EEE:344
BBB:233,CCC:211,DDD:888,EEE:912
Need to extract the value of BBB
Field1
-------
345
222
233
尝试regexp_extract
并无法获得所需的输出。
答案 0 :(得分:1)
假设您的表名为 temp ,列名为 s ,其中包含一个字符串。您可以使用此功能获取您的值:select regexp_extract(s, 'BBB:(.*?)(,)', 1) from temp;
答案 1 :(得分:0)
使用此正则表达式:
select regexp_extract('AAA:123,BBB:345,CCC:456,DDD:789,EEE:434', '(BBB:)([\\d]+)', 2);
345
select regexp_extract('AAA:343,BBB:222,DDD:989,EEE:344', '(BBB:)([\\d]+)', 2);
222
select regexp_extract('BBB:233,CCC:211,DDD:888,EEE:912', '(BBB:)([\\d]+)', 2);
233