[HADOOP] 돼지의 단일 열 드롭
HADOOP돼지의 단일 열 드롭
약 20 개의 ID 목록으로 표를 필터링하고 있습니다. 지금 내 코드는 다음과 같습니다.
A = LOAD 'ids.txt' USING PigStorage();
B = LOAD 'massive_table' USING PigStorage();
C = JOIN A BY $0, B BY $0;
D = FOREACH C GENERATE $1, $2, $3, $4, ...
STORE D INTO 'foo' USING PigStorage();
내가 싫어하는 것은 라인 D입니다. 여기서 새로운 테이블을 다시 생성하여 현재 원하는 (그리고 때로는 많은 컬럼입니다) 모든 다른 단일 컬럼을 명시 적으로 선언하여 결합 컬럼을 제거해야합니다. 나는 다음과 같은 것이 있는지 궁금합니다.
FILTER B BY $0 IN (A)
또는:
DROP $0 FROM C
해결법
-
==============================
1.아마이 질문에 similiar-ish :
아마이 질문에 similiar-ish :
JIRA 티켓 (https://issues.apache.org/jira/browse/PIG-1693)을 참조하면 .. 표기법을 사용하여 나머지 필드를 모두 나타낼 수 있습니다.
D = FOREACH C GENERATE $1 .. ;
0.9.0+ PIG가 있다고 가정합니다.
-
==============================
2.열 번호 5를 삭제하려면 다음과 같이 할 수 있습니다.
열 번호 5를 삭제하려면 다음과 같이 할 수 있습니다.
D = FOREACH C GENERATE .. $4, $6 .. ;
열을 이름별로 놓으려는 경우, 제거 할 열의 이름 만 알면 가능하지 않습니다. 그러나이 열 바로 앞과 뒤의 열 이름을 알고있는 경우 가능합니다. colBeforeMyCol과 colAfterMyCol 사이에 열을 드롭하려면 다음과 같이 할 수 있습니다.
aliasAfter = FOREACH aliasBefore GENERATE .. colBeforeMyCol, colAfterMyCol ..;
from https://stackoverflow.com/questions/10835943/drop-single-column-in-pig by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hive의 기본 실행 엔진으로 Spark 설정 (0) | 2019.07.23 |
---|---|
[HADOOP] 오류 : java.io.IOException : 잘못된 값 클래스 : class org.apache.hadoop.io.Text가 클래스 Myclass가 아닙니다. (0) | 2019.07.23 |
[HADOOP] loadfunc 돼지 UDF를 사용하여 protobuf 형식 파일을 돼지 스크립트에로드 (0) | 2019.07.23 |
[HADOOP] 하이브 버전 0.13.1의 성능 문제 (0) | 2019.07.23 |
[HADOOP] Hive가 저장 프로 시저를 지원하지 않는 이유는 무엇입니까? (0) | 2019.07.23 |