使用pig从csv文件读取数据

yb3bgrhw  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(444)

我在mac上读一个csv文件。我所做的就是 load 将文件转换为变量 dump 变量。我是这样做的:

movies = LOAD '/user/myhome/movies_data.csv' USING PigStorage(',') as (id,name,year,rating,duration);
DUMP movies;

我使用的数据是从这里提供的github下载的
此文件在我的mac上本地安装的hdfs中可用。当我这么做的时候 dump 我得到一个错误:
org.apache.pig.impl.logicalayer.frontendexception:错误1066:无法打开alias电影的迭代器
在org.apache.pig.pigserver.openiterator(pigserver。java:935)位于org.apache.pig.tools.grunt.gruntparser.processdump(gruntparser。java:754)在org.apache.pig.tools.pigscript.parser.pigscriptparser.parse(pigscriptparser。java:376)在org.apache.pig.tools.grunt.gruntparser.parsestoponerror(gruntparser。java:230)在org.apache.pig.tools.grunt.gruntparser.parsestoponerror(gruntparser。java:205)在org.apache.pig.tools.grunt.grunt.run(grunt。java:66)在org.apache.pig.main.run(main。java:565)在org.apache.pig.main.main(main。java:177)位于sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:497)在org.apache.hadoop.util.runjar.run(runjar。java:221)在org.apache.hadoop.util.runjar.main(runjar。java:136)原因:java.io.ioexception:作业终止,异常状态失败,位于org.apache.pig.pigserver.openiterator(pigserver)。java:927) ... 13个以上
当我在运行此作业时点击app cluster链接时,出现以下异常:
诊断:容器启动异常。容器id:container\u 1443887668938\u 0007\u 02\u000001退出代码:127堆栈跟踪:exitcodeexception exitcode=127:at org.apache.hadoop.util.shell.runcommand(shell)。java:538)在org.apache.hadoop.util.shell.run(shell。java:455)在org.apache.hadoop.util.shell$shellcommandexecutor.execute(shell。java:715)在org.apache.hadoop.yarn.server.nodemanager.defaultcontainerexecutor.launchcontainer(defaultcontainerexecutor)。java:211)在org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.containerlaunch.call(containerlaunch。java:302)在org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.containerlaunch.call(containerlaunch。java:82)在java.util.concurrent.futuretask.run(futuretask。java:266)位于java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor。java:1142)在java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor。java:617)在java.lang.thread.run(线程。java:745)容器以非零退出代码127退出,尝试失败。应用程序失败。
pig版本是0.15.0,hadoop版本是2.6.1。我是不是漏了什么?

whlutmcx

whlutmcx1#

你可以用Pig圈里的CSV装载机。如果不可用,获取piggybank jar并注册它并使用csvloader。像这样的。

register '/your/path/to/piggybank/jar' ;
define CSVLoader org.apache.pig.piggybank.storage.CSVLoader();
movies = LOAD '/user/myhome/movies_data.csv' USING CSVLoader as (id,name,year,rating,duration);

相关问题