每行有多个ID,我想提取每行中某些文本后面的数字。以下可能是我在id列中的值。
test123; tghy876; 8906; TT-1234
best123; tghy8656; 88706; TT-5678
我希望输出只返回tt之后的数字 - 所以我的输出应该如下所示。
1234
5678
应该使用什么样的hive代码来实现这个目标?
答案 0 :(得分:3)
使用regexp - 返回'之后的任意位数的第一组; TT - '
select regexp_extract(src_string,'\; TT-(\\d+)',1);
演示:
hive> select regexp_extract('best123\; tghy8656\; 88706\; TT-5678','\; TT-(\\d+)',1);
OK
5678
Time taken: 0.056 seconds, Fetched: 1 row(s)
hive>
答案 1 :(得分:0)
能够使用多次拆分来实现。
分割(分割(ID," TT - ")[1],&#34 ;;")[0]