如何在pig0.8中处理多分隔符文件

t9aqgxwy  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(287)

我已经输入文本文件(名称多重分隔符)与以下记录

1,Mical,2000;10
2,Smith,3000;20

我写了Pig代码如下

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 : "\'(.*)[,](.*)[,](.*)[;"

我裁判以下链接,但不能解决我的错误
如何在piglatin中每次加载具有不同分隔符的文件
请帮我摆脱这个错误。
谢谢。

ecfsfe2w

ecfsfe2w1#

终于有办法了。
以下是我的解决方案:

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);
ntjbwcob

ntjbwcob2#

输入示例的解决方案:以逗号分隔的形式加载,而不是以“;”分隔的strsplit然后变平

相关问题