1

我一直在使用 PIG,并且想知道如何在加载文件时不考虑第一行。我有一个带有标题的文件。所以我应该忽略第一行并转到下一行对日期列和所有内容进行处理。如何解决这个问题?

谢谢

4

2 回答 2

5

如果你有 pig 0.11 版,你可以试试这个:

input_file = load 'input' USING PigStorage(',') as (row1:chararay, row2:chararray);

ranked = rank input_file;

NoHeader = Filter ranked by (rank_input_file > 1);

New_input_file = foreach NoHeader generate row1, row2;

New_input_file 应该包含没有标题的数据。请注意,等级运算符是 pig 0.11 的新功能,因此这不适用于早期版本。

编辑:请注意,此解决方案仅适用于单个文件,如果您要加载目录,请尝试其他方法。

于 2013-10-01T12:48:06.283 回答
2

如果您只加载 1 个文件,给定的解决方案将运行良好。但是,如果您加载目录中的所有文件(这也可以通过简单地确保输入是目录路径来实现),给定的解决方案只会切断第一个文件的顶部。

要删除每个文件中的标题,您可能需要使用CSVExcelStorage

my_input = load 'inputfileordir' USING CSVExcelStorage(',', 'default', 'NOCHANGE', 'SKIP_INPUT_HEADER')
于 2015-12-28T13:12:09.507 回答