Programiranje prašičev: Apache Pig Script z UDF v načinu HDFS



Programiranje prašičev: Apache Pig Script z UDF v načinu HDFS. Tukaj je objava v spletnem dnevniku za zagon skripta Apache Pig z UDF v načinu HDFS ...

V prejšnjih objavah v blogu smo videli, kako začeti Programiranje in skriptiranje prašičev . Videli smo korake za pisanje a Pig Script v načinu HDFS in brez UDF. V tretjem delu te serije bomo pregledali korake za pisanje Pig scenarija UDF v načinu HDFS .

Pojasnili smo, kako implementirati Pig UDF z ustvarjanjem vgrajenih funkcij, ki pojasnjujejo funkcionalnost Pig vgrajene funkcije. Za boljšo razlago smo vzeli dve vgrajeni funkciji. To smo storili s pomočjo prašičje skripte.





Tu smo vzeli en primer in uporabili tako UDF (uporabniško določene funkcije), to je, da naredimo niz v velikih črkah in vzamemo vrednost in povečamo njeno moč.

Podatki so prikazani spodaj, ki jih bomo uporabili v tem primeru:



table

Naš cilj je narediti črko iz prvega stolpca z velikimi črkami in dvigniti moč 2. stolpca z vrednostjo 3. stolpca.

Začnimo s pisanjem java kode za vsak UDF. Prav tako moramo v našem projektu Java konfigurirati 4 JAR-je, da se izognemo napakam pri prevajanju.
Najprej bomo ustvarili programe java, oba sta navedena spodaj:



Zgornja.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') javni razred Upper razširja EvalFunc {public String exec (Tuple input) vrže IOException {if (input == null || input.size () == 0) return null try {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (Izjema e) {throw WrappedIOException.wrap ('Ujeta izjema za obdelavo vhodne vrstice', e)}}}

Power.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.PigWarning import org.apache.pig.data.Tuple javni razred Pow razširja EvalFunc {public Long exec (Tuple input) vrže IOException {try { int base = (Integer) input.get (0) int exponent = (Integer) input.get (1) long result = 1 / * Verjetno ni najučinkovitejša metoda ... * / for (int i = 0 i result) {// Prelivali smo. Dajte opozorilo, vendar ne vrzite // izjeme. warn ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // Vrnitev nule bo Pigu pokazala, da nismo uspeli, vendar // želimo nadaljevati izvajanje. return null}} return result} catch (Izjema e) {// Če vržemo izjemo, naloga ne bo uspela. vrzi nov IOException ('Nekaj ​​slabega se je zgodilo!', e)}}}

Za odstranitev napak pri prevajanju moramo konfigurirati 4 JAR-ji v našem projektu java.


Kliknite gumb Prenos, da prenesete JAR-je

[buttonleads form_title = ”Prenos kode” redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = ”Prenos JAR-jev”]

Zdaj izvozimo datoteke JAR za obe kodi java. Preverite spodnje korake za ustvarjanje JAR.

Tu smo pokazali za en program, nadaljujte na enak način tudi v naslednjem programu.

Po ustvarjanju datotek JAR in besedilnih datotek smo vse podatke premaknili v skupino HDFS, ki je prikazana na naslednjih slikah:

V našem naboru podatkov so polja ločena z vejico (,).

kje naj se spremenljivke primerkov deklarirajo v javi

Po premikanju datoteke smo ustvarili skript s pripono .pig in v to datoteko skripta vnesli vse ukaze.

Zdaj v terminalu vnesite PIG, čemur sledi ime datoteke skripta, ki je prikazano na naslednji sliki:

Tukaj je to izhod za zagon skripta prašiča.

Imate vprašanje za nas? Prosimo, da jih omenite v oddelku za komentarje, pa se vam bomo oglasili.

Sorodne objave:

Koraki za ustvarjanje UDF v Apache Pig

Uvod v Apache Hive