使用pig

时间:2015-10-04 15:14:21

标签: hadoop apache-pig

我正在尝试在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。我在这里错过了什么吗?

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