복붙노트

[HADOOP] Pig 출력에서 ​​괄호와 쉼표를 제거하십시오

HADOOP

Pig 출력에서 ​​괄호와 쉼표를 제거하십시오

현재 내 출력은 다음과 같습니다.

((130,1))
((131,1))
((132,1))
((133,1))
((137,1))
((138,2))
((139,1))
((140,1))
((142,2))
((143,1))

나는 그것을 좋아하고 싶다 :

130 1
131 1
132 1

내 코드는 다음과 같습니다.

A = LOAD 'user-links-small.txt' AS (user_a: int, user_b: int);
B = ORDER A BY user_a;
grouped = COGROUP B BY user_a;
C = FOREACH grouped GENERATE COUNT(B);
D = COGROUP C BY $0;
E = FOREACH D GENERATE($0, COUNT($1));
DUMP E;

나는이 포럼을 살펴보고 있었고 일부는 사용자 정의 함수를 코딩하는 방법을 제안했습니다. 나는 그것을 시도 할 수 있지만 Pig를 처음 사용하고 그 기능을 조금 더 배우고 싶습니다. flatten ()에서 무언가를 찾았지만 실제로 그 출력을 얻을 수 없습니다. 그림과 같이 대괄호와 쉼표를 제거하는 방법이 있습니까? 도움을 주셔서 감사합니다.

해결법

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

    1.기본적으로 DUMP 명령을 사용하면 출력은 튜플로 저장됩니다 (즉, 구분 기호 ','로 구분 된 함수 괄호 안에 덤프 된 모든 필드)

    기본적으로 DUMP 명령을 사용하면 출력은 튜플로 저장됩니다 (즉, 구분 기호 ','로 구분 된 함수 괄호 안에 덤프 된 모든 필드)

    FLATTEN 연산자를 사용하여 첫 번째 괄호를 제거하고 STORE 명령을 사용하여 두 번째 괄호와 ','를 제거 할 수 있습니다.

    이 시도

    E = FOREACH D GENERATE FLATTEN(($0, COUNT($1)));
    STORE E INTO 'output' USING PigStorage(' ');
    

    'output'폴더로 이동하여 파일 이름이 part *로 시작하는지 확인하십시오. 당신은 이와 같은 출력을 볼 것입니다 130 1 131 1 132 1

  2. from https://stackoverflow.com/questions/26893141/remove-brackets-and-commas-in-output-from-pig by cc-by-sa and MIT license