gpt4 book ai didi

hadoop - 如何从 apache pig 下的一个包中找到所有可能的排列

转载 作者:可可西里 更新时间:2023-11-01 16:14:14 25 4
gpt4 key购买 nike

我正在尝试使用 apache pig 找到所有可能的组合,我能够生成排列,但我想消除值的复制我编写了这段代码:

A = LOAD 'data' AS f1:chararray;
DUMP A;
('A')
('B')
('C')
B = FOREACH A GENERATE $0 AS v1;
C = FOREACH A GENERATE $0 AS v2;
D = CROSS B, C;

我得到的结果是这样的:

 DUMP D;
('A', 'A')
('A', 'B')
('A', 'C')
('B', 'A')
('B', 'B')
('B', 'C')
('C', 'A')
('C', 'B')
('C', 'C')

但我想要获得的结果如下所示

DUMP R;
('A', 'A')
('A', 'B')
('A', 'C')
('B', 'B')
('B', 'C')
('C', 'C')

我该怎么做?我避免使用字符比较,因为一个字符串可能不止一行出现多次

最佳答案

您可以 FILTER D 删除不需要的行。例如

A = load 'testdata.txt';
B = foreach A generate $0;
C = Cross A, B;
D = filter C by $0 <= $1;
dump D;

打印出来

(C,C)
(B,C)
(B,B)
(A,C)
(A,B)
(A,A)

当'testdata.txt'有

A
B
C

关于hadoop - 如何从 apache pig 下的一个包中找到所有可能的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25408179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com