Kiaulės programavimas: „Apache Pig“ scenarijus su UDF HDFS režimu



Kiaulės programavimas: „Apache Pig“ scenarijus su UDF HDFS režimu. Čia yra tinklaraščio įrašas, skirtas paleisti „Apache Pig“ scenarijų su UDF HDFS režimu ...

Ankstesniuose tinklaraščio įrašuose matėme, kaip pradėti Kiaulienos programavimas ir scenarijai . Mes matėme žingsnius, norint parašyti a Kiaulės scenarijus HDFS režimu ir be UDF. Trečioje šios serijos dalyje apžvelgsime veiksmus, su kuriais reikia parašyti „Pig“ scenarijų UDF HDFS režimu .

java konvertuojant dvigubą į int

Mes paaiškinome, kaip įdiegti „Pig UDF“ sukurdami integruotas funkcijas, kad paaiškintume „Pig“ integruotos funkcijos funkcionalumą. Norėdami geriau paaiškinti, mes ėmėmės dviejų integruotų funkcijų. Tai padarėme pasitelkdami kiaulės scenarijų.





Čia mes paėmėme vieną pavyzdį ir naudojome tiek UDF (vartotojo apibrėžtas funkcijas), t. Y. Sudarydami eilutę didžiosiomis raidėmis ir paimdami vertę bei padidindami jos galią.

Duomenų rinkinys pavaizduotas žemiau, kurį ketiname naudoti šiame pavyzdyje:



table

Mūsų tikslas yra padaryti 1 stulpelio raidę didžiosiomis raidėmis ir padidinti 2 stulpelio galią su 3 stulpelio verte.

Pradėkime nuo kiekvieno UDF Java kodo rašymo. Taip pat turime sukonfigūruoti 4 JAR savo Java projekte, kad išvengtume kompiliavimo klaidų.
Pirmiausia sukursime „Java“ programas, kurios abi pateikiamos žemiau:



Viršutinė.java

importuoti java.io.IOException importuoti org.apache.pig.EvalFunc importuoti org.apache.pig.data.Tuple importuoti org.apache.pig.impl.util.WrappedIOException @SuppressWarnings ('deprecija') viešoji klasė Viršutinė išplečia EvalFunc {public String exec (Tuple įvestis) išmeta IOException {if (input == null || input.size () == 0) return null bandykite {String str = (String) input.get (0) str = str.toUpperCase () return str} pagauti (e išimtis) {thrake WrappedIOException.wrap ('Gauta išimtis apdorojant įvesties eilutę', e)}}}

Galia.java

importuoti java.io.IOException importuoti org.apache.pig.EvalFunc importuoti org.apache.pig.PigWarning importuoti org.apache.pig.data.Tuple public class Pow pratęsia EvalFunc {public Long exec (Tuple įvestis) meta IOException {try { int bazė = (Sveikas skaičius) input.get (0) int eksponentas = (Sveikas skaičius) input.get (1) ilgas rezultatas = 1 / * Turbūt ne pats efektyviausias metodas ... * / for (int i = 0 i rezultatas) {// Mes perpildėme. Pateikite įspėjimą, bet nemeskite // išimties. įspėti ('Perpildymas!', PigWarning.TOO_LARGE_FOR_INT) // Grąžinus nulį, Pigui bus nurodyta, kad mums nepavyko, bet // norime tęsti vykdymą. return null}} return result} catch (e išimtis) {// Išmetus išimtį, užduotis nepavyks. mesti naują IOException („Įvyko kažkas blogo!“, e)}}}

Norėdami pašalinti kompiliavimo klaidas, turime sukonfigūruoti 4 stiklainiai mūsų „Java“ projekte.


Norėdami atsisiųsti JAR, spustelėkite mygtuką Atsisiųsti

[buttonleads form_title = „Atsisiųsti kodą“ redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = ”Atsisiųsti JAR”]

Dabar eksportuojame abiejų „Java“ kodų JAR failus. Norėdami sukurti JAR, patikrinkite toliau nurodytus veiksmus.

Čia mes parodėme vienai programai, tęskite tą patį kelią ir kitoje programoje.

Sukūrę JAR ir tekstinius failus, mes perkelėme visus duomenis į HDFS klasterį, kurį vaizduoja šie vaizdai:

Mūsų duomenų rinkinyje laukai yra atskiriami kableliais (,).

prioritetinės eilės diegimas java

Perkėlę failą, mes sukūrėme scenarijų su plėtiniu .pig ir įdėjome visas komandas į tą scenarijaus failą.

Dabar terminale įveskite PIG ir scenarijaus failo pavadinimą, kuris rodomas šiame paveikslėlyje:

Čia yra kiaulės scenarijaus paleidimo išvestis.

Turite mums klausimą? Prašau paminėti juos komentarų skiltyje ir mes su jumis susisieksime.

Susijusios žinutės:

koks skirtumas tarp jquery ir javascript

UDF kūrimo „Apache Pig“ veiksmai

Apache avilio įvadas