Az előző blogbejegyzésekben láthattuk, hogyan kell kezdeni Pig programozás és szkriptelés . Láttuk az a Pig Script HDFS módban és UDF nélkül. A sorozat harmadik részében áttekintjük azokat a lépéseket, amelyekkel egy Pig szkriptet kell írni UDF HDFS módban .
Elmagyaráztuk, hogyan lehet a Pig UDF-et megvalósítani beépített függvények létrehozásával, hogy megmagyarázzuk a Pig beépített funkciójának funkcionalitását. A jobb magyarázat érdekében két beépített funkciót vettünk igénybe. Ezt disznó szkript segítségével tettük meg.
Itt egy példát vettünk, és mind az UDF-et (a felhasználó által definiált függvényeket), azaz a karakterlánc készítését nagybetűvel, mind az érték felvételét, mind a teljesítmény növelését használtuk.
Az adatkészletet alább mutatjuk be, amelyet ebben a példában fogunk használni:
Célunk az, hogy az 1. oszlop betűjét nagybetűvel készítsük, és emeljük a 2. oszlop erejét a 3. oszlop értékével.
Kezdjük azzal, hogy minden egyes UDF-hez megírjuk a java kódot. Be kell állítanunk 4 JAR-ot a java projektünkben, hogy elkerüljük a fordítási hibákat.
Először létrehozunk java programokat, mindkettőt az alábbiakban adjuk meg:
Felső.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 kiterjeszti az EvalFunc {public Az string exec (Tuple bevitel) IOException-t dob {if (input == null || input.size () == 0) return null próbálkozás {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (e kivétel) {dob WrappedIOException.wrap ('Elfogott kivétel feldolgozza a bemeneti sort', e)}}}
Hatalom.java
import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.PigWarning import org.apache.pig.data.Tuple public class Pow kiterjeszti az EvalFunc {public Long exec (Tuple input) dobja az IOException {try { int alap = (Egész) input.get (0) int kitevő = (Egész) input.get (1) hosszú eredmény = 1 / * Valószínűleg nem a leghatékonyabb módszer ... * / for (int i = 0 i eredmény) {// Túlcsordultunk. Adj figyelmeztetést, de ne dobj // kivételt. warn ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // A null érték visszaadása jelzi Pignek, hogy kudarcot vallottunk, de // folytatni akarjuk a végrehajtást. return null}} return eredmény} catch (e kivétel) {// Kivételt dobva a feladat meghiúsul. dobjon új IOException-t ('Valami baj történt!', e)}}}
A fordítási hibák eltávolításához konfigurálnunk kell 4 JAR java projektünkben.
salesforce service cloud interjúk
Kattintson a Letöltés gombra a JAR-ok letöltéséhez
[buttonleads form_title = ”Kód letöltése” redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = 'JAR-ok letöltése']
Most JAR fájlokat exportálunk mindkét java kódhoz. Kérjük, ellenőrizze az alábbi lépéseket a JAR létrehozásához.
Itt megmutattuk az egyik program esetében, ugyanígy járjon el a következő programban is.
A JAR-ok és szöveges fájlok létrehozása után az összes adatot áthelyeztük a HDFS-fürtbe, amelyet a következő képek mutatnak be:
Adatkészletünkben a mezők vesszővel (,) vannak elválasztva.
hogyan készítsünk képernyőképet a szelén webmeghajtóban a java használatával
A fájl áthelyezése után létrehoztunk egy .pig kiterjesztésű szkriptet, és az összes parancsot abba a szkriptfájlba tettük.
A terminálban írja be a PIG parancsot, majd a szkriptfájl nevét, amely a következő képen látható:
tavaszi mvc bemutató kezdőknek
Ez a kimenet a disznó szkript futtatásához.
Van egy kérdésünk? Kérjük, említse meg őket a megjegyzések részben, és mi kapcsolatba lépünk Önnel.
Kapcsolódó hozzászólások:
Az UDF létrehozásának lépései az Apache Pig alkalmazásban