在 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 ...
其他检查:
解压并查看是否有 CSVExcelStorage class。
","是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
我正在使用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 ...
其他检查:
解压并查看是否有 CSVExcelStorage class。
","是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