首页 文章

使用pig从csv文件中读取数据

提问于
浏览
0

我'm trying to read a csv file on pig shell on mac. All I'做的是 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:无法在org.apache.pig.tool.grunt的org.apache.pig.PigServer.openIterator(PigServer.java:935)上打开别名电影的迭代器.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 . 位于org.apache.pig.Main.main(Main.java:177)的apache.pig.Main.run(Main.java:565)位于sun.reflect.NativeMethodAccessorImpl的sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) . 在org.apache.hadoop.util.RunJar的java.lang.reflect.Method.invoke(Method.java:497)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中调用(NativeMethodAccessorImpl.java:62) .run(RunJar.java:221)在org.apache.hadoop.util . RunJar.main(RunJar.java:136)引起:java.io.IOException:作业在org.apache.pig.PigServer.openIterator(PigServer.java:927)中以异常状态FAILED终止... 13更多

当我在运行此作业时点击应用程序集群链接时,我收到以下异常:

诊断:容器启动的例外情况 . 容器ID:container_1443887668938{02_000001退出代码:127堆栈跟踪:ExitCodeException exitCode = 127:atg.apache.hado . java:455)org.apache.hadoop.util.Shell $ ShellCommandExecutor.execute(Shell.java:715)org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)at org .apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java: 82)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)的java.util.concurrent.FutureTask.run(FutureTask.java:266)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor) .java:617)at java.lang.Thread.run(Thread.java:745)Container以非零退出代码退出127失败此尝试 . 申请失败 .

猪版本为0.15.0,hadoop为2.6.1 . 我在这里错过了什么吗?

1 回答

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

相关问题