我正在尝试在mac上读取pig shell上的csv文件。我正在做的只是load
一个变量和dump
变量的文件。我正是这样做的:
movies = LOAD '/user/myhome/movies_data.csv' USING PigStorage(',') as (id,name,year,rating,duration);
DUMP movies;
我正在使用的数据是从github提供的here
下载的此文件在我的mac上本地安装的hdfs中可用。当我dump
时,我收到错误:
org.apache.pig.impl.logicalLayer.FrontendException:ERROR 1066:无法打开别名电影的迭代器
at org.apache.pig.PigServer.openIterator(PigServer.java:935)at at 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)at org.apache.pig.Main.run(Main.java:565)at org.apache.pig.Main.main(Main.java:177)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:497)at org.apache.hadoop.util.RunJar.run(RunJar.java:221)at org.apache.hadoop.util.RunJar.main(RunJar.java:136)引起: java.io.IOException:作业终止,异常状态为FAILED at org.apache.pig.PigServer.openIterator(PigServer.java:927)... 13更多
当我在运行此作业时点击应用程序集群链接时,出现以下异常:
诊断:容器启动时的异常。 容器ID:container_1443887668938_0007_02_000001退出代码:127 堆栈跟踪:ExitCodeException exitCode = 127:at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)at org.apache.hadoop.util.Shell.run(Shell.java:455)at 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)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745)容器退出时带有 非零退出代码127未通过此尝试。申请失败。
猪版本为0.15.0,hadoop为2.6.1。我在这里错过了什么吗?
答案 0 :(得分:0)
您可以使用piggybank中的CSVLoader。获取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);