0

我有一些包含 url 字符串的数据,它们都嵌入了一些不同的子字符串。

我的目标是获得一组从字符串中删除子字符串的结果:

例如

rawdata: { id Long, url String }

这是一些示例原始数据: 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

所以基本上从网址中删除颠覆号(_v1|_v2|v3|_v4)并创建独特的结果。

我如何在猪中做到这一点?

谢谢,

4

1 回答 1

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)))
于 2013-09-30T02:56:02.043 回答