在 Pig 中读取 CSV 文件

Reading a CSV File in Pig

我正在使用Cloudera CDH3 伪模式集群。在 CDH3 中 Pig 版本是 0.8

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

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

我的csv文件是这样的..

id    name       city
100   surrender  Chennai
101   raja       Chennai

下面是我的 Pig 脚本

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.

我需要为 pig 0.8 版本下载 piggbank jar 吗?

这里有什么问题? pig 0.8版本可以读取csv文件吗?

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

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

其他检查:

  1. 解压并查看是否有 CSVExcelStorage class。

  2. ","是CSVExcelStorage的默认分隔符,我们不需要指定相同的。

其他选择是使用 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