我的csv文件在第一行中具有 header 。将它们加载到Pig中会对任何后续功能(例如SUM)造成困惑。从今天开始,我首先对加载的数据应用过滤器,以删除包含 header 的行:
affaires = load 'affaires.csv' using PigStorage(',') as (NU_AFFA:chararray, date:chararray) ;
affaires = filter affaires by date matches '../../..';
我认为这是一种愚蠢的方法,并且我想知道是否有一种方法可以告诉Pig不要加载csv的第一行,就像加载函数的“as_header” bool 参数一样。
我在文档上看不到它。最佳做法是什么?您通常如何处理?
最佳答案
CSVExcelStorage
加载程序支持跳过标题行,因此请使用PigStorage
代替CSVExcelStorage
。下载piggybank.jar
并尝试此选项。
样本示例
input.csv
Name,Age,Location
a,10,chennai
b,20,banglore
PigScript :(带有SKIP_INPUT_HEADER选项)
REGISTER '/tmp/piggybank.jar';
A = LOAD 'input.csv' USING org.apache.pig.piggybank.storage.CSVExcelStorage(',', 'NO_MULTILINE', 'UNIX', 'SKIP_INPUT_HEADER');
DUMP A;
输出:
(a,10,chennai)
(b,20,banglore)
引用:
http://pig.apache.org/docs/r0.13.0/api/org/apache/pig/piggybank/storage/CSVExcelStorage.html
关于csv - Hadoop Pig-删除csv header ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29335656/