Programare Pig: Script Apache Pig cu UDF în modul HDFS



Programare Pig: Script Apache Pig cu UDF în modul HDFS. Iată o postare pe blog pentru a rula scriptul Apache Pig cu UDF în modul HDFS ...

În postările anterioare de pe blog am văzut cum să începem Programarea și scriptarea porcilor . Am văzut pașii pentru a scrie un Script de porc în modul HDFS și fără UDF. În a treia parte a acestei serii vom trece în revistă pașii pentru a scrie un script Pig UDF în modul HDFS .

Am explicat cum să implementăm Pig UDF prin crearea de funcții încorporate pentru a explica funcționalitatea funcției încorporate Pig. Pentru o mai bună explicație, am luat două funcții încorporate. Am făcut acest lucru cu ajutorul unui script de porc.





Aici, am luat un exemplu și am folosit atât UDF (funcții definite de utilizator), adică realizarea unui șir cu majuscule și luarea unei valori și creșterea puterii acestuia.

Setul de date este descris sub care vom folosi în acest exemplu:



table

Scopul nostru este de a face litera 1 a coloanei cu majuscule și de a crește puterea celei de-a doua coloane cu valoarea coloanei 3.

Să începem cu scrierea codului Java pentru fiecare UDF. De asemenea, trebuie să configurăm 4 JAR-uri în proiectul nostru Java pentru a evita erorile de compilare.
În primul rând, vom crea programe Java, ambele sunt prezentate mai jos:



Superior.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 (intrare Tuple) aruncă 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 ('Prins excepția procesând rândul de intrare', e)}}}

Puterea.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 Execut (Tuple input) throws IOException {try { int baza = (Integer) input.get (0) int exponent = (Integer) input.get (1) rezultat lung = 1 / * Probabil că nu este cea mai eficientă metodă ... * / pentru (int i = 0 i rezultat) {// Am debordat. Dă un avertisment, dar nu aruncă o // excepție. warn ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // Revenirea nulă îi va indica lui Pig că am eșuat, dar // vrem să continuăm execuția. return null}} return result} catch (Excepție e) {// Aruncarea unei excepții va duce la eșecul sarcinii. aruncă o nouă IOException („S-a întâmplat ceva rău!”, e)}}}

Pentru a elimina erorile de compilare, trebuie să configurăm 4 borcane în proiectul nostru Java.


Faceți clic pe butonul Descărcare pentru a descărca JAR-urile

[buttonleads form_title = ”Cod de descărcare” redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = ”Descărcați JAR-urile”]

Acum, exportăm fișiere JAR atât pentru codurile Java. Vă rugăm să verificați pașii de mai jos pentru crearea JAR.

Aici, am arătat pentru un program, procedați în același mod și în următorul program.

conectivitatea bazei de date în java cu mysql

După crearea fișierelor JAR și text, am mutat toate datele în cluster HDFS, care este descris de următoarele imagini:

În setul nostru de date, câmpurile sunt separate prin virgulă (,).

tutorial server SQL pentru începători cu exemple

După mutarea fișierului, am creat un script cu extensia .pig și am pus toate comenzile în acel fișier script.

Acum, în terminal, tastați PIG urmat de numele fișierului script care este afișat în următoarea imagine:

Aici, acesta este rezultatul pentru rularea scriptului porc.

Ai o întrebare pentru noi? Vă rugăm să le menționați în secțiunea de comentarii și vă vom răspunde.

Postări asemănatoare:

Pași pentru a crea UDF în Apache Pig

Introducere în Apache Hive