在Pig中读取CSV文件

时间:2015-07-16 17:18:59

标签: apache-pig

我正在使用Cloudera CDH3伪模式群集。在CDH3中,猪版本为0.8

我想阅读使用Pig脚本的CSV或Excel文件

我下载了piggybank-0.11.0.jar并将其保存在/ home / cloudera /目录中

我的csv文件是这样的..

id    name       city
100   surrender  Chennai
101   raja       Chennai

我的猪脚本位于

之下
REGISTER '/home/cloudera/piggybank-0.11.0.jar';

A = LOAD '/user/cloudera/inputfiles/sample_rec.csv' USING CSVExcelStorage(',') AS (id:int,name:chararray,city:chararray);
B = DUMP A;

但我收到的错误

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: Could not resolve CSVExcelStorage using imports: [, org.apache.pig.builtin., org.apache.pig.impl.builtin.

我是否需要下载Piggbank jar for pig 0.8 version?

这里有什么问题? 是否可以在pig 0.8版本中读取csv文件?

1 个答案:

答案 0 :(得分:2)

使用CSVExcelStorage()时指定完整的包名称:

USING org.apache.pig.piggybank.storage.CSVExcelStorage() AS ...

其他检查:

  1. Unjar并查看您是否正在使用CSVExcelStorage类。

  2. “,”是CSVExcelStorage的默认分隔符,我们无需指定相同的分隔符。

  3. 其他替代方法是使用CSVLoader

     A = LOAD 'a.csv' USING org.apache.pig.piggybank.storage.CSVLoader() AS (f1,f2,f3);
    

    参考:http://pig.apache.org/docs/r0.8.1/api/org/apache/pig/piggybank/storage/CSVLoader.html