我有一些包含url字符串的数据,这些字符串都嵌入了各种子字符串。
我的目标是获取一组从字符串中删除子字符串的结果:
e.g。
rawdata:{ id龙, url字符串 }
这里是一些示例rawdata: 1,/ 213112341_v1.html 2,43524254243_v2.html 5,/ 000000_v3.html 5,/ 000000_v4.html
我想要的结果是:
1,/ 213112341.html 2,43524254243.html 5,/ 000000.html
所以基本上从网址中删除teh subversion数字(_v1 | _v2 | v3 | _v4)并创建唯一结果。
我如何在猪身上做到这一点?
谢谢,
答案 0 :(得分:0)
您最好的选择是做以下事情:
FOREACH data GENERATE id, CONCAT(REGEX_EXTRACT(url, '(/?[0-9]*)_,',1),'.html');
编辑:
如果数据更复杂,请尝试以下方法
FOREACH data GENERATE id, CONCAT(STRSPLIT(url, '_v[0-9]',1),'.html')
这应该在版本#之前获得所有内容,并且concat将.html添加回来。如果前面的版本号和版本号后面的部分更复杂,你可以做类似的事情:
FOREACH data GENERATE id, CONCAT(FLATTEN(STRSPLIT(url, '_v[0-9]',2)))