[Hadoop] Apache Pig, Pig Latin이란?
Pig
- 대용량 데이터를 분석하기 위해 야후에서 개발된 플랫폼
- Hadoop 과 MapReduce 위에 구축되어 있어 Mapper와 Reducer를 작성하지 않고 MapReduce 작업을 수행할 수 있음
- SQL과 비슷한
Pig Latin
이라는 스트립트 언어를 사용 - MapReduce 보다 빠른 TEZ 위에서도 작동
Pig Latin
- MapReduce 작성을 대신하게 해주는 스크립트 언어
- HDFS에 업로드한 파일을 사용한다
명령어
- LOAD : 데이터 불러오기
metadata = LOAD 'DATA PATH'
# '|'로 구분된 데이터
metadata = LOAD 'DATA PATH' USING PigStorage('|')
# 컬럼별 타입 지정
metadata = LOAD 'DATA PATH' USING PigStorage('|') AS (column1:int, column2;chararray, column3:chararray);
# 데이터 보기
DUMP metadata
- FOREACH / GENERATE , FILTER : 컬럼, 값 필터링
# 데이터 불러오기
metadata = LOAD 'DATA PATH' USING PigStorage('|') AS (column1:int, column2;chararray, column3:chararray);
# 컬럼 필터링
colFilter = FOREACH metadata GENERATE column1, column3;
# 값 필터링 - column2의 값이 apple 인 것만 추출
valueFilter = FILTER meatadata BY column2 == 'apple';
- GROUP BY : 집계함수
# column2 로 column3 집계
GROUP column2 BY column3;
- JOIN : 결합
# data1의 column1 와 data2의 column1 을 기준으로 합침
JOIN data1 BY column1, data2 BY column1;
- ORDER BY : 정렬
ORDER metadata BY column1 (ASC|DESC);
이외의 명령어는 공식 페이지에서 확인할 수 있습니다.