복붙노트

[HADOOP] 스칼라은 돼지 프로젝션 사용할 수 있습니다

HADOOP

스칼라은 돼지 프로젝션 사용할 수 있습니다

스칼라은 내가이 오류를 해결할 수 있습니다 foreach.How를 사용하는 동안 나는이 오류가 무엇입니까 투사로 사용할 수 있습니까? 내가 어떻게 foreach 문에서 LIMIT를 사용할 수 있습니까? 몇 가지를 제안 해주십시오 사전에 감사합니다 ..

편집 (Tichdroma) : 주석에서 복사 한 코드

A = LOAD 'part-r-00000';
G = Group A by ($0,$2 );
Y = foreach G generate FLATTEN(group), FLATTEN($1);
sorted = order Y by $0 ASC, $1 DESC;
X = foreach Y {
  lim = LIMIT sorted 3;
  generate lim;
};
Dump x;

해결법

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

    1.LIMIT는 FOREACH의 nested_op에 돼지 0.9에서 사용할 수 있습니다.

    LIMIT는 FOREACH의 nested_op에 돼지 0.9에서 사용할 수 있습니다.

    각 그룹의 상위 N 요소를하려면 각 하나 반복하고 개별적으로 정렬을 제한하려고 할 수 있습니다 :

    A = LOAD 'part-r-00000';
    G = GROUP A by ($0, $2);
    X = FOREACH G {
      sorted = ORDER A by $0 ASC, $1 DESC;
      lim = LIMIT sorted 3;
      GENERATE lim;
    };
    DUMP X;
    

    그냥 (안이 경우) 비교 값의 열이있을 때 TOP 효율적이 될 수 있음을 알 수 있습니다.

  2. from https://stackoverflow.com/questions/9108206/scalars-can-only-be-used-with-projection-in-pig by cc-by-sa and MIT license