0
我遇到了問題。我不明白怎樣才能爲輸入生成唯一的「十字」。 這是我輸入:在Pig中生成獨特的交叉
A, B, C
我想獲得:
A,B
A,C
B,C
UDF(數據-FU,撲滿)我可以用什麼來解決這個問題?
我遇到了問題。我不明白怎樣才能爲輸入生成唯一的「十字」。 這是我輸入:在Pig中生成獨特的交叉
A, B, C
我想獲得:
A,B
A,C
B,C
UDF(數據-FU,撲滿)我可以用什麼來解決這個問題?
如果輸入就像
A
B
C
和你想要輸出:
A,B
A,C
B,C
您可以使用cross
加入得到的結果。例如:
input1 = load 'your_path' as (key: chararray);
input2 = load 'your_path' as (key: chararray);
cross_results = cross input1, input2;
final_results = filter cross_results by input1::key < input2::key;
如果 「A,B,C」 僅在一個記錄一個包,你可以使用flatten
。例如,
-- Assume your input x is something like {A, B, C} in one row
y = foreach x generate flatten($0) as f1, flatten($0) as f2;
final_results = filter y by f1 < f2;
由於您的描述不是非常詳盡,我只能提供上述解決方案。你可能需要適應它。
是A,B,C 3記錄還是隻有一個包? – zsxwing