我一直在使用Pig从一段时间以来,想知道如何不考虑第一行,而加载一个文件。我有一个有头的文件。所以我应该忽略第一行,转到下一行对日期列和所有列进行处理。怎么办?谢谢
vaqhlq811#
如果只加载一个文件,给定的解决方案将很好地工作。但是,如果您加载目录中的所有文件(也可以通过简单地确保输入是目录路径),给定的解决方案将只切断第一个文件的顶部。要删除每个文件中的头文件,可能需要使用csvexcelstorage
my_input = load 'inputfileordir' USING CSVExcelStorage(',', 'default', 'NOCHANGE', 'SKIP_INPUT_HEADER')
sg3maiej2#
如果您有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;
新的输入文件应该包含您的数据,而不包含头。请注意,rank操作符是pig0.11的新操作符,因此在早期版本中不起作用。编辑:请注意,此解决方案仅适用于单个文件,如果要加载目录,请尝试其他方法。
2条答案
按热度按时间vaqhlq811#
如果只加载一个文件,给定的解决方案将很好地工作。但是,如果您加载目录中的所有文件(也可以通过简单地确保输入是目录路径),给定的解决方案将只切断第一个文件的顶部。
要删除每个文件中的头文件,可能需要使用csvexcelstorage
sg3maiej2#
如果您有pig版本0.11,您可以尝试以下方法:
新的输入文件应该包含您的数据,而不包含头。请注意,rank操作符是pig0.11的新操作符,因此在早期版本中不起作用。
编辑:请注意,此解决方案仅适用于单个文件,如果要加载目录,请尝试其他方法。