我以前一直在使用PIG,并想知道在加载文件时如何不考虑第一行。我有一个有标题的文件。所以我应该忽略第一行并转到下一行来处理日期列和所有。如何解决这个问题?
由于
答案 0 :(得分:4)
如果您有猪版本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应该包含没有标头的数据。请注意,rank运算符是pig 0.11的新功能,因此这不适用于早期版本。
编辑:请注意,此解决方案仅适用于单个文件,如果您正在加载目录,请尝试使用其他内容。
答案 1 :(得分:1)
如果只加载1个文件,给定的解决方案将运行良好。但是,如果您加载目录中的所有文件(这也可以通过简单地确保输入是目录路径),给定的解决方案将只切断第一个文件的顶部。
要删除每个文件中的标题,您可能需要使用CSVExcelStorage
my_input = load 'inputfileordir' USING CSVExcelStorage(',', 'default', 'NOCHANGE', 'SKIP_INPUT_HEADER')