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);

이외의 명령어는 공식 페이지에서 확인할 수 있습니다.