我输入了以下记录的文本文件(名称 multidelimiter )
1,Mical,2000;10
2,Smith,3000;20
我写的猪代码如下
A =LOAD '/user/input/multidelimiter' AS line;
B = FOREACH A GENERATE FLATTEN( REGEX_EXTRACT_ALL( line,'(.*)[,](.*)[,](.*)[;]')) AS (f1,f2,f3,f4);
但是这段代码在下面的错误
中没有用ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: Error during parsing. Lexical error at line 1, column 78. Encountered: <EOF> after : "\'(.*)[,](.*)[,](.*)[;"
我审阅了以下链接,但无法解决我的错误
how to load files with different delimiter each time in piglatin
请帮我摆脱这个错误。
感谢。
答案 0 :(得分:1)
输入示例的解决方案: 以逗号分隔加载,而不是STRSPLIT加';'和FLATTEN
答案 1 :(得分:1)
终于得到了解决方案。
这是我的解决方案:
A =LOAD '/user/input/multidelimiter' using PigStorage(',') as (empid,ename,line);
B = FOREACH A GENERATE empid,ename, FLATTEN( REGEX_EXTRACT_ALL( line,'(.*)\\u003B(.*)')) AS (sal:int,deptno:int);