Pig 프로그래밍 : HDFS 모드에서 UDF를 사용하는 Apache Pig 스크립트



Pig 프로그래밍 : HDFS 모드에서 UDF를 사용하는 Apache Pig 스크립트. 다음은 HDFS 모드에서 UDF로 Apache Pig 스크립트를 실행하는 블로그 게시물입니다.

이전 블로그 게시물에서 우리는 Pig 프로그래밍 및 스크립팅 . 우리는 작성하는 단계를 보았습니다 HDFS 모드의 Pig 스크립트 UDF없이. 이 시리즈의 세 번째 부분에서는 다음을 사용하여 Pig 스크립트를 작성하는 단계를 검토합니다. HDFS 모드의 UDF .

Pig 내장 함수의 기능을 설명하기 위해 내장 함수를 만들어 Pig UDF를 구현하는 방법을 설명했습니다. 더 나은 설명을 위해 두 가지 내장 함수를 사용했습니다. 우리는 돼지 스크립트의 도움으로 이것을했습니다.





여기서는 한 가지 예를 들어 UDF (사용자 정의 함수)를 모두 사용했습니다. 즉, 대문자로 문자열을 만들고 값을 가져와 그 힘을 높입니다.

이 예제에서 사용할 데이터 세트는 아래에 설명되어 있습니다.



table

우리의 목표는 첫 번째 열을 대문자로 만들고 세 번째 열의 값으로 두 번째 열의 힘을 높이는 것입니다.

각 UDF에 대한 Java 코드 작성부터 시작하겠습니다. 또한 컴파일 오류를 피하기 위해 Java 프로젝트에 4 개의 JAR을 구성해야합니다.
먼저 다음과 같은 자바 프로그램을 만들 것입니다.



Upper.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.data.Tuple import org.apache.pig.impl.util.WrappedIOException @SuppressWarnings ( 'deprecation') public class Upper extends EvalFunc {public String exec (Tuple input) throws IOException {if (input == null || input.size () == 0) return null try {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (Exception e) {throw WrappedIOException.wrap ( 'Caught exception processing input row', e)}}}

Power.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.PigWarning import org.apache.pig.data.Tuple public class Pow extends EvalFunc {public Long exec (Tuple input) throws IOException {try { int base = (Integer) input.get (0) int exponent = (Integer) input.get (1) long result = 1 / * 아마도 가장 효율적인 방법은 아닙니다 ... * / for (int i = 0 i result) {// 오버플로되었습니다. 경고를 주되 // 예외를 발생시키지 마십시오. warn ( 'Overflow!', PigWarning.TOO_LARGE_FOR_INT) // null을 반환하면 Pig는 실패했지만 // 계속 실행을 원한다는 것을 나타냅니다. return null}} return result} catch (Exception e) {// 예외가 발생하면 작업이 실패합니다. throw new IOException ( '뭔가 잘못되었습니다!', e)}}}

컴파일 오류를 제거하려면 다음을 구성해야합니다. 4 개의 JAR 자바 프로젝트에서.

초보자를위한 빅 데이터 튜토리얼


다운로드 버튼을 클릭하여 JAR을 다운로드하십시오.

[buttonleads form_title =”코드 다운로드”redirect_url = https : //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text =”JAR 다운로드”]

이제 두 Java 코드에 대한 JAR 파일을 내 보냅니다. JAR 생성을 위해 아래 단계를 확인하십시오.

여기에서는 한 프로그램에 대해 보여 주었으며 다음 프로그램에서도 동일한 방식으로 진행합니다.

JAR 및 텍스트 파일을 생성 한 후 모든 데이터를 HDFS 클러스터로 옮겼습니다. 이는 다음 이미지로 표시됩니다.

데이터 세트에서 필드는 쉼표 (,)로 구분됩니다.

파일을 이동 한 후 확장자가 .pig 인 스크립트를 만들고 해당 스크립트 파일에 모든 명령을 넣었습니다.

이제 터미널에서 다음 이미지에 표시된 스크립트 파일 이름 뒤에 PIG를 입력합니다.

여기는 pig 스크립트를 실행하기위한 출력입니다.

질문이 있으십니까? 댓글 섹션에 언급 해 주시면 다시 연락 드리겠습니다.

관련 게시물:

Apache Pig에서 UDF를 만드는 단계

Apache Hive 소개