piglatin-从关系中删除元组/字段

xienkqul  于 2021-06-21  发布在  Pig
关注(0)|答案(2)|浏览(314)

这是我在stackoverflow上的第一篇文章,如果这篇文章太长和/或含糊不清,请提前原谅。
我和Pig的关系如下:

my_relation = LOAD '/path/to/data' USING PigStorage(',') 
              AS (f1:chararray, f2:chararray, f3:chararray);

现在,我想从上面的关系“my\u relation”中过滤掉字段“f3”。我知道我可以这样做:

my_new_relation = FOREACH my_relation GENERATE my_relation.f1, my_relation.f2;

当我在“my\u relation”关系中有大量字段/元组时,这个方法就会出现问题。比如说,我的\关系有900个字段/元组,我想要所有字段/元组,但只有一个。现在,使用上面的方法,我必须在我的'generate'关键字后面列出899个字段/元组!
我的问题是:有没有一种简单的方法从piglatin的关系中过滤出一些字段/元组?
prior:我对apache pig和piglatin的理解一般都很弱(这个问题的难度可以说明这一点)。我还在看这里找到的Pig文件。
谢谢你阅读这个问题!感谢您的帮助!

v09wglhw

v09wglhw1#

您还可以编写自己的加载程序,在其中可以指定要加载的所有列。

frebpwbc

frebpwbc2#

首先,你的语法不太正确。如果你想保存这些字段 f1 以及 f2 ,您可以这样做:

my_new_relation = FOREACH my_relation GENERATE f1, f2;

对于您的问题,您可以使用项目范围表达式:

my_new_relation = FOREACH my_relation GENERATE f1 .. f345, f347 .. f900;

相关问题