在正斜杠和反斜杠之间过滤数据

enyaitl3  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(383)

我用pig拉丁语过滤数据记录,下面提到的一行是我卡住的记录。输入行:/actrc5/txn08/scr301/seq/tex021@
我期望的输出是:actrc5、txn08、scr301、seq、tex021
反斜杠的次数可以是任意次数,输入记录可以很长。我不知道应该用什么方法来获得输出。
非常感谢您的帮助/建议。

h7wcgrx3

h7wcgrx31#

以下是解决问题的方法:
problem.txt文件包含以下带有\或特殊字符序列的数据:
示例数据--//actrc5//txn08/scr301/seq//tex021@
第一步是简单地加载数据:

A = LOAD 'problem.txt' as line;

--The next two steps use the String Replace function to clean the data as per your needs:

B = FOREACH A GENERATE REPLACE(line,'([^a-zA-Z0-9\\s]+)',',') AS (data:chararray);

C = FOREACH B GENERATE REPLACE(data,'(^,|,$)','');

DUMP C;

输出:actrc5、txn08、scr301、seq、tex021
这里我使用两个阶段来清理数据,稍后我将尝试发布单步解决方案。现在应该有用了。

相关问题