这是我在StackOverflow上的第一篇文章,如果这篇文章过于冗长和/或含糊不清,请提前原谅我。
我有一个Pig关系如下:
my_relation = LOAD '/path/to/data' USING PigStorage(',')
AS (f1:chararray, f2:chararray, f3:chararray);
现在,我想过滤掉字段' f3'从上述关系' my_relation'。我知道我可以这样做:
my_new_relation = FOREACH my_relation GENERATE my_relation.f1, my_relation.f2;
当我在“my_relation”中有大量字段/元组时,会出现此方法的问题。关系。比方说,my_relation有900个字段/元组,我想要所有这些但只有一个。现在,通过上述方法,我必须在生成' GENERATE'之后列出899个字段/元组。关键词!
我的问题:是否有一种简单的方法可以从PigLatin中的关系中过滤出少数字段/元组?
之前:我之前关于Apache Pig和PigLatin的一般情况非常弱(可以通过这个问题的难度来讲述)。我还在阅读发现的猪文档here。
感谢您阅读此问题!任何/所有帮助表示赞赏!
答案 0 :(得分:2)
首先,你的语法不太正确。如果您只想保存字段f1
和f2
,就可以这样做:
my_new_relation = FOREACH my_relation GENERATE f1, f2;
关于您的问题,您可以使用project-range expression:
my_new_relation = FOREACH my_relation GENERATE f1 .. f345, f347 .. f900;
答案 1 :(得分:0)
此外,您可以编写自己的加载程序,您可以在其中指定要加载的所有列。