2013-06-26 46 views
0

這個問題可能聽起來很奇怪,但它始終在我的腦海。我們假設我有一列數據。我怎麼能爲每一行可用的第二列旁邊放置一個靜態字符串?因此,如果單列數據集的第一行顯示「你好」,那麼兩欄對應應該說「你好」,「世界」。通過GROUP ALL加入數據集

如果您想知道爲什麼我該怎麼做,那是因爲,後來在我的腳本中,我需要將單個數據集與另一個數據集連接起來,其中前者沒有參考點。這是我迄今所做的:

fnl2 = FOREACH fnl1 GENERATE 
var1, 
(var1 == var1 ? 'World' : 'World') AS var2; 

在這種情況下,可以通過組的所有或類似的東西來完成,請隨時提供您的提示。

回答

1

你在正確的軌道上,但二進制是不必要的。你可以做

fnl2 = FOREACH fnl1 GENERATE var1, 'World' AS var2; 

但是,即使你正在做這個,所以你可以在以後執行JOIN這是沒有必要的。 JOIN需要表現以及場,所以你可以做

joined = JOIN fnl1 BY 1, other BY 1; 

但是,即使這是不必要的,因爲你只是執行跨產品,和豬是你領先一步:

crossed = CROSS fnl1, other; 

最後一個陳述是我認爲你正在尋找,但希望其他人說明一些有用的點給你。