복붙노트

[HADOOP] 아파치 돼지 - 같은 관계 이상 중첩 FOREACH

HADOOP

아파치 돼지 - 같은 관계 이상 중첩 FOREACH

나는 가방의 번호를하고 난 가방 사이의 페어 유사성을 계산합니다.

sequences = FOREACH raw GENERATE gen_bag(logs);

다음의 관계를 설명한다 :

sequences: {t: (type: chararray, value:charray)}

유사성은 인수로 두 개의 가방을 취하는 파이썬 UDF에 의해 계산된다. 나는 시퀀스 변수를 통해 중첩 된 foreach 문을하려고 노력 해요,하지만 난 두 번 같은 관계를 통해 루프를 기울인다. 또한 두 번 순서를 정의하기 위해 노력했습니다,하지만 난 foreach 문에 복사본에 액세스하지 못할. 나는 나에게 이런 일을 할 수있는 데이터 구조를 가지고 올 수있는 방법 또한 확실 해요. 이걸 어떻게 할 수 있습니까?

해결법

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

    1.그런 다음, 크로스 제품을 수행, 소스 데이터의 두 복사본을로드 각 쌍에 UDF를 호출을 반복 할 수있는 것 같은데. 뭔가 같은 :

    그런 다음, 크로스 제품을 수행, 소스 데이터의 두 복사본을로드 각 쌍에 UDF를 호출을 반복 할 수있는 것 같은데. 뭔가 같은 :

    sequences_A = FOREACH raw GENERATE gen_bag(logs);
    sequences_B = FOREACH raw GENERATE gen_bag(logs);
    all_pairs = CROSS sequences_A, sequences_B;
    FOREACH all_pairs GENERATE myudf(first_bag, second_bag);
    
  2. from https://stackoverflow.com/questions/40358849/apache-pig-nested-foreach-over-same-relation by cc-by-sa and MIT license