我有一个文本文件,它的第一行包含标题。现在,我想对数据进行一些操作,但是在使用PigStorage加载文件时,它也需要HEADER。我只想跳过HEADER。是否可以这样做(直接或通过UDF)?
这是我用来加载数据的命令:
input_file = load '/home/hadoop/smdb_tracedata.csv'
USING PigStorage(',')
as (trans:chararray, carrier:chararray,aainday:chararray);
如果您使用的猪版本为0.11,则可以尝试以下操作:
input_file = load '/home/hadoop/smdb_tracedata.csv' USING PigStorage(',') as (trans:chararray, carrier :chararray,aainday:chararray);
ranked = rank input_file;
NoHeader = Filter ranked by (rank_input_file > 1);
Ordered = Order NoHeader by rank_input_file
New_input_file = foreach Ordered Generate trans, carrier, aainday;
这将摆脱第一行,使New_input_file与原始行完全相同,而没有标题行(假设标题行是文件中的第一行)。请注意,等级运算符仅在Pig 0.11中可用,因此,如果您使用的是较早版本,则需要寻找其他方法。
编辑:添加了有序行,以确保New_input_file保持与原始输入文件相同的顺序
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句