如何在pig 0.8中处理多分隔符文件

时间:2016-02-07 06:34:32

标签: hadoop apache-pig

我输入了以下记录的文本文件(名称 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

请帮我摆脱这个错误。

感谢。

2 个答案:

答案 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);