我有一个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个以上
请帮忙。
1条答案
按热度按时间t8e9dugd1#
您可以使用csvexcelstorage加载数据。您必须下载piggybank.jar并在pigscript中注册它。