我的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/

10-09 00:23