복붙노트

[HADOOP] 아파치 돼지 아래 가방에서 모든 가능한 순열을 찾는 방법

HADOOP

아파치 돼지 아래 가방에서 모든 가능한 순열을 찾는 방법

내가 아파치 돼지를 사용하여 가능한 모든 조합을 찾기 위해 노력하고있어 나는 순열을 생성 할 수 있었지만 나는이 코드를 작성 값의 복제를 제거하려면 :

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')

나는이 어떻게 할 수 있습니까? 나는 그것이 가능하기 때문에 이상 라인에 문자열의 여러 발생을 가지고 문자의 비교를 사용하지 않도록

해결법

  1. ==============================

    1.당신은 당신이 원하지 않는 행을 제거하기 위해 D를 필터링 할 수 있습니다. 예를 들면

    당신은 당신이 원하지 않는 행을 제거하기 위해 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
    
  2. from https://stackoverflow.com/questions/25408179/how-to-find-all-possible-permutations-from-a-bag-under-apache-pig by cc-by-sa and MIT license