我的table上有几行字。这条线看起来像:
Atribute | ---------------| B=10;MB=12;A=33| ---------------| MB=16;B=12;A=23| ---------------| A=10;MB=23;B=58|
等等。我只需要在“b=”之后得到数字。对于这个例子,我应该得到:
10 12 58
为了得到这个结果,我应该编写什么select查询(查询不应与“mb=”和“b=”混淆)
b0zn9rqh1#
hive> select regexp_extract('B=10\;AB=12\;B=33', '(\;|^)B=([0-9]*)', 2); OK 10 Time taken: 0.157 seconds, Fetched: 1 row(s) hive> select regexp_extract('MB=16\;B=12\;A=23', '(\;|^)B=([0-9]*)', 2); OK 12 Time taken: 0.11 seconds, Fetched: 1 row(s) hive> select regexp_extract('A=10\;MB=23\;B=58', '(\;|^)B=([0-9]*)', 2); OK 58 Time taken: 0.134 seconds, Fetched: 1 row(s) hive>
第一组将尝试将字符串的开头与值“b”匹配,或将分号与值“b”的字符串匹配。
1条答案
按热度按时间b0zn9rqh1#
第一组将尝试将字符串的开头与值“b”匹配,或将分号与值“b”的字符串匹配。