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