2014-12-02 5 views
0

나는 돼지에 익숙하며 돼지를 배우려고합니다. 두 열을 비교하여 두 열에 값이 있는지 확인하려고합니다. 동일한 작업을 수행하기 위해 Java로 샘플 프로그램을 작성했습니다. 자, 나는이 프로그램을 돼지로 바꾸려고합니다.돼지의 컬럼 값 비교

int [][] arr = {{1,2},{2,1},{3,2},{2,3}}; 
for (int i=0; i<arr.length; i++) 
for (int j=0; j<arr.length; j++) 
    if (arr[j][0] == arr[i][1]) 
    System.out.println("found"); 
    else 
    System.out.println("not found"); 

은 지금까지 나는 나에게 같은 결과를 얻어야한다 각 관계에 대한 가방에 두 번째 값을 INT의 첫 번째 값을 비교

grunt> read_file = LOAD 'file.txt' AS (i:int, j:int); 
grunt> DUMP read_file; 
(1,2) 
(2,1) 
(3,2) 
(2,3) 
grunt> grp = GROUP read_file BY $0; 
grunt> dump grp; 
(1,{(1,2)}) 
(2,{(2,1),(2,3)}) 
(3,{(3,2)}) 

작성했습니다.

+0

다음 단계는 무엇입니까? 비교 후에 관계를 필터링해야합니까? https://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#Comparison+Operators 여기에서 예제를 살펴보십시오. –

+0

찾을 수없는 경우 관계 – user3749097

+0

에서 값을 제거하고 싶습니다. 위의 입력에 대한 최종 출력은 무엇입니까? –

답변

0

이 같은 foreach 루프에서 조건문을 사용할 수 있습니다 : 이것은 '- 찾을 수없는'경우에 따라 빈 튜플을 줄 것이다

processed_file = FOREACH read_file GENERATE (i==j?i:'') AS i, (i==j?i:'') AS j ;

. 빈 터플을 필터링하려면 FILTER를 사용하십시오.