2014-04-22 37 views
0

這是我在StackOverflow上的第一篇文章,如果這太冗長和/或模糊,請提前請原諒。PigLatin - 從關係中刪除元組/字段

我有一個豬的關係如下:

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

現在,我想篩選出從上面的關係「my_relation」領域「F3」。我知道我能做到這一點,像這樣:

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

這種方法的問題是當我在「my_relation」關係的大量的字段/元組。說,我的相關有900個字段/元組,我希望他們都是一個。現在,用上面的方法,我不得不在我的'GENERATE'關鍵字後列出899個字段/元組!

我的問題:是否有一種簡單的方法可以從PigLatin中的關係中過濾掉一些字段/元組?

上一篇:我之前關於Apache Pig和PigLatin一般都很弱(這個問題很難說)。我仍然閱讀Pig文檔here

感謝您閱讀這個問題!任何/所有的幫助表示讚賞!

回答

2

首先,你的語法不太對。如果你想只保存領域f1f2,你會做這樣的:

my_new_relation = FOREACH my_relation GENERATE f1, f2; 

至於你的問題,你可以使用一個project-range expression

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

謝謝!這正是我之前軟弱的意思 - 不知道正確的語法。我仍然在磕磕絆絆。 我試過了項目範圍表達技巧,它似乎工作!非常感謝! –

0

你也可以寫你自己加載器,您可以指定要加載的所有列。

+0

你可以請我鏈接到一些資源? –