pig中的右移问题

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

我有一个csv文件,其中包含以下格式的数据:

data_id,data_text,data_author
1,"here some text...",anurag
2,"Hi, i am apsc...",apsc
3,"i am living in "NYC"",another user

我正在执行以下步骤来加载正确的数据方法1。

temp = LOAD'filepath' USING PigStorage(',');

当我转储temp时,数据在第二条记录中右移了一个逗号。
方法2:使用新行作为分隔符加载数据

temp = LOAD'filepath' USING PigStorage('\n');

它在一个袋子里给我一张唱片。
我再次尝试实现regex来打破包袱

mydata = FOREACH data GENERATE FLATTEN(REGEX_EXTRACT_ALL('\\s*,\\s*,\\s*'));

这是一个抛出错误:

清管器堆放痕迹

错误1045:无法将org.apache.pig.builtin.regex\u extract\u的匹配函数全部推断为多个或没有匹配的函数。请使用显式转换。
org.apache.pig.impl.logicalayer.validators.typecheckerexception:错误1059:在org.apache.pig.newplan.logical.visitor.typecheckingrelvisitor.throwtypecheckerexception(typecheckingrelvisitor)上协调foreach的输出架构时出现问题。java:142)在org.apache.pig.newplan.logical.visitor.typecheckingrelvisitor.visit(typecheckingrelvisitor。java:182)在org.apache.pig.newplan.logical.relational.loforeach.accept(loforeach。java:76)在org.apache.pig.newplan.dependencyorderwalker.walk(dependencyorderwalker。java:75)访问org.apache.pig.newplan.planvisitor.visit(planvisitor。java:52)在org.apache.pig.pigserver$graph.compile(pigserver。java:1635)在org.apache.pig.pigserver$graph.validatequery(pigserver。java:1572)在org.apache.pig.pigserver$graph.registerquery(pigserver。java:1544)在org.apache.pig.pigserver.registerquery(pigserver。java:516)在org.apache.pig.tools.grunt.gruntparser.processpig(gruntparser。java:991)在org.apache.pig.tools.pigscript.parser.pigscriptparser.parse(pigscriptparser。java:412)在org.apache.pig.tools.grunt.gruntparser.parsestoponerror(gruntparser。java:194)在org.apache.pig.tools.grunt.gruntparser.parsestoponerror(gruntparser。java:170)在org.apache.pig.tools.grunt.grunt.run(grunt。java:69)在org.apache.pig.main.run(main。java:538)在org.apache.pig.main.main(main。java:157)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:57)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:622)在org.apache.hadoop.util.runjar.main(runjar。java:160)原因:org.apache.pig.impl.logicalayer.validators.typecheckerexception:错误1045:无法将org.apache.pig.builtin.regex的匹配函数全部推断为多个或没有匹配的函数。请使用显式转换。在org.apache.pig.newplan.logical.visitor.typecheckingexpvisitor.visit(typecheckingexpvisitor。java:775)在org.apache.pig.newplan.logical.expression.userfuncexpression.accept(userfuncexpression。java:88)在org.apache.pig.newplan.reversedependencyorderwalker.walk(reversedependencyorderwalker。java:70)在org.apache.pig.newplan.planvisitor.visit(planvisitor。java:52)在org.apache.pig.newplan.logical.visitor.typecheckingrelvisitor.visitexpressionplan(typecheckingrelvisitor。java:191)访问org.apache.pig.newplan.logical.visitor.typecheckingrelvisitor.visit(typecheckingrelvisitor)。java:157)在org.apache.pig.newplan.logical.relational.logenerate.accept(logenerate。java:246)在org.apache.pig.newplan.dependencyorderwalker.walk(dependencyorderwalker。java:75)访问org.apache.pig.newplan.planvisitor.visit(planvisitor。java:52)访问org.apache.pig.newplan.logical.visitor.typecheckingrelvisitor.visit(typecheckingrelvisitor)。java:174)

... 19个以上

请帮忙。

t8e9dugd

t8e9dugd1#

您可以使用csvexcelstorage加载数据。您必须下载piggybank.jar并在pigscript中注册它。

REGISTER /path_to_jar/piggybank.jar;
DEFINE CSVExcelStorage org.apache.pig.piggybank.storage.CSVExcelStorage();

A = LOAD 'filepath/file.txt' USING CSVExcelStorage(',') AS (f1:int,f2:chararray,f3:chararray);
DUMP A;

相关问题