Pig programozás: Apache Pig Script UDF-mel HDFS módban



Pig programozás: Apache Pig Script UDF-mel HDFS módban. Itt van egy blogbejegyzés az Apache Pig parancsfájl futtatásához UDF-sel HDFS módban ...

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:



table

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

Bevezetés az Apache Hive-ba