복붙노트

[HADOOP] 돼지 참조

HADOOP

돼지 참조

하둡 돼지를 배우고 있으며 항상 요소를 참조하는 것을 고집했습니다. 아래 예를 찾으십시오.

groupwordcount: {group: chararray,words: {(bag_of_tokenTuples_from_line::token: chararray)}}

우리가 중첩 된 튜플과 가방이 있다면 누군가 요소를 참조하는 방법을 설명해 줄 수 있습니까?

중첩 참조를 더 잘 이해하기위한 모든 링크가 큰 도움이 될 것입니다.

해결법

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

    1.이 문제를 이해하기 위해 간단한 데모를하겠습니다.

    이 문제를 이해하기 위해 간단한 데모를하겠습니다.

    HDFS의 '/tmp/a.txt'폴더에 저장된 'a.txt'파일을 말합니다.

    A = LOAD '/tmp/a.txt'를 PigStorage ( ',') AS를 사용하여 (name : chararray, term : chararray, gpa : float);

    덤프 A;

    (요한, 플로리다, 3.9)

    (John, fl, 3.7)

    (John, sp, 4.0)

    (요한, sm, 3.8)

    (Mary, fl, 3.8)

    (Mary, fl, 3.9)

    (Mary, sp, 4.0)

    (메리, sm, 4.0)

    이제 매개 변수 이름과 용어를 기준으로이 별칭 'A'로 그룹화합시다.

    B = 그룹 A BY (이름, 용어);

    덤프 B;

    ((John, fl), {(John, fl, 3.7), (John, fl, 3.9)})

    ((요한, sm), {(요한, sm, 3.8)})

    ((John, sp), {(John, sp, 4.0)})

    ((Mary, fl), {(Mary, fl, 3.9), (Mary, fl, 3.8)})

    ((Mary, sm), {(Mary, sm, 4.0)})

    ((Mary, sp), {(Mary, sp, 4.0)})

    B를 기술;

    B : {그룹 : (이름 : chararray, 용어 : chararray), A : {(이름 : chararray, 용어 : chararray, gpa : float)}}

    이제 그것은 당신이 요구 한 문제 진술이되었습니다. 그룹 튜플 요소 또는 튜플 요소 또는 둘 다에 액세스하는 방법을 보여 드리겠습니다.

    C = foreach B는 group.name, group.term, A.name, A.term, A.gpa를 생성합니다.

    덤프 C;

    (John, fl, {(John), (John)}, {(fl), (fl)}, {(3.7), (3.9)})

    (John, sm, {(John)}, {(sm)}, {(3.8)})

    (John, sp, {(John)}, {(sp)}, {(4.0)})

    (Mary, fl, {(Mary), (Mary)}, {(fl), (fl)}, {(3.9), (3.8)})

    (Mary, sm, {(Mary)}, {(sm)}, {(4.0)})

    (Mary, sp, {(Mary)}, {(sp)}, {(4.0)})

    그래서 우리는이 방법으로 모든 요소에 접근했습니다.

    이것이 도움이 되었기를 바랍니다

  2. from https://stackoverflow.com/questions/44490831/pig-referencing by cc-by-sa and MIT license