Hadoop Pig - 删除 csv header
Hadoop Pig - Removing csv header
我的 csv 文件第一行有 header。将它们加载到 pig 中会对任何后续函数(如 SUM)造成混乱。从今天开始,我首先对加载的数据应用过滤器以删除包含 headers 的行:
affaires = load 'affaires.csv' using PigStorage(',') as (NU_AFFA:chararray, date:chararray) ;
affaires = filter affaires by date matches '../../..';
我认为它作为一种方法有点愚蠢,我想知道是否有一种方法可以告诉 pig 不要加载 csv 的第一行,例如加载的 "as_header" 布尔参数功能。
我没有在文档上看到它。最佳做法是什么?你平时是怎么处理的??
CSVExcelStorage
加载程序支持跳过 header 行,因此使用 CSVExcelStorage
而不是 PigStorage
。下载 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
Pig 0.9 的另一个简单选项,不使用 SKIP_INPUT_HEADER 选项可以按如下方式完成:
输入文件(input.txt)
input.txt
Name,Age,Location
a,10,chennai
b,20,banglore
PigScript:(不使用 SKIP_INPUT_HEADER 选项,因为此选项在 Pig 0.9 中不可用)
register '<Your location>/piggybank.jar';
d_with_headers = LOAD 'input.csv' using org.apache.pig.piggybank.storage.CSVExcelStorage() AS (name:chararray, age:long, location:chararray);
d = FILTER places_with_headers BY name!='Name';
dump d;
输出:
(a,10,chennai)
(b,20,banglore)
我的 csv 文件第一行有 header。将它们加载到 pig 中会对任何后续函数(如 SUM)造成混乱。从今天开始,我首先对加载的数据应用过滤器以删除包含 headers 的行:
affaires = load 'affaires.csv' using PigStorage(',') as (NU_AFFA:chararray, date:chararray) ;
affaires = filter affaires by date matches '../../..';
我认为它作为一种方法有点愚蠢,我想知道是否有一种方法可以告诉 pig 不要加载 csv 的第一行,例如加载的 "as_header" 布尔参数功能。 我没有在文档上看到它。最佳做法是什么?你平时是怎么处理的??
CSVExcelStorage
加载程序支持跳过 header 行,因此使用 CSVExcelStorage
而不是 PigStorage
。下载 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
Pig 0.9 的另一个简单选项,不使用 SKIP_INPUT_HEADER 选项可以按如下方式完成:
输入文件(input.txt)
input.txt
Name,Age,Location
a,10,chennai
b,20,banglore
PigScript:(不使用 SKIP_INPUT_HEADER 选项,因为此选项在 Pig 0.9 中不可用)
register '<Your location>/piggybank.jar';
d_with_headers = LOAD 'input.csv' using org.apache.pig.piggybank.storage.CSVExcelStorage() AS (name:chararray, age:long, location:chararray);
d = FILTER places_with_headers BY name!='Name';
dump d;
输出:
(a,10,chennai)
(b,20,banglore)