pig 예제

이 예제에서는 관계 X와 함께 가방(a)에 있는 각 튜플의 첫 번째 필드(f1)를 투영하는 데 사용됩니다. 긴 상수를 지정하려면 l 또는 L을 숫자에 추가해야 합니다(예: 12345678L). l 또는 L을 지정하지 않았지만 숫자가 너무 커서 int에 맞지 않으면 구문 분석 시간에 문제가 감지되고 처리가 종료됩니다. 이 예제에서는 관계 A의 두 필드가 관계 X를 형성하도록 투영됩니다. 이 예제에서는 요청된 열($3)이 선언된 스키마(위치 표기고가 $0로 시작됨)를 벗어나기 때문에 오류가 생성됩니다. 문이 실행되기 전에 오류가 발생합니다. 이 예제에서 돼지 스트리밍은 기본 직렬화/직렬화 함수입니다. 관계 A의 tuples는 스크립트에 전달되는 탭 구분 된 줄로 변환됩니다. 이 예제에서는 별표(*)가 관계 A에서 관계 X로 모든 필드를 투영하는 데 사용됩니다. 이 예제에서는 입력 관계에 있는 필드 중 하나가 튜플, 가방 또는 맵인 경우 해당 필드에서 투영을 수행할 수 있습니다(추론 연산자 사용). 이 예제에서는 관계 A와 B의 결합이 계산됩니다. 이 예제에서 관계 X는 A. 스키마를 사용하여 필드에 형식을 할당하는 데이터의 1%를 포함합니다.

형식을 할당하지 않으면 기본적으로 바이트어레이 를 입력하는 필드와 암시적 변환이 해당 데이터가 사용되는 컨텍스트에 따라 데이터에 적용됩니다. 예를 들어 관계 B에서 f1은 정수 5이기 때문에 정수로 변환됩니다. 관계에서 C, f1 및 f2는 f1 또는 f2의 유형을 모르기 때문에 두 배로 변환됩니다. 이 예제에서는 bincond 연산자가 필드 f2 및 B와 함께 사용됩니다. 조건은 “f2는 1과 같습니다”; 조건이 true이면 1을 반환합니다. 조건이 false이면 B의 tuples 수 수를 반환합니다. 이 예제에서 데이터는 PigStorage 및 별표 문자(*)를 필드 구분 기호로 사용하여 저장됩니다. 이전과 동일한 예이지만 DENSE.

이 경우 순위 값에 차이가 없습니다. 참고: 돼지는 하둡을 사용하므로 기능이 동일합니다. 그러나 돼지 LOAD 연산자가 아닌 Hadoop fs 명령을 사용하여 명령줄에서 실행하면 유닉스 셸이 일부 대체 작업을 수행할 수 있습니다. 이것은 돼지와 하두프에 대해 글로빙이 다르게 작동한다는 인상을 주는 결과를 바꿀 수 있습니다. 예를 들어 이 예제에서 조건은 세 번째 필드가 3이면 관계 X가 있는 튜플을 포함한다고 명시합니다.

¡Contactanos!