Programmazione Pig: Apache Pig Script con UDF in modalità HDFS



Programmazione Pig: Apache Pig Script con UDF in modalità HDFS. Ecco un post sul blog per eseguire lo script Apache Pig con UDF in modalità HDFS ...

Nei precedenti post del blog abbiamo visto come iniziare Programmazione e scripting di maiale . Abbiamo visto i passaggi per scrivere un file Pig Script in modalità HDFS e senza UDF. Nella terza parte di questa serie esamineremo i passaggi per scrivere uno script Pig con UDF in modalità HDFS .

Abbiamo spiegato come implementare l'UDF di Pig creando funzioni incorporate per spiegare la funzionalità della funzione incorporata di Pig. Per una migliore spiegazione, abbiamo preso due funzioni integrate. Lo abbiamo fatto con l'aiuto di una sceneggiatura di maiale.





Qui, abbiamo preso un esempio e abbiamo usato entrambe le UDF (funzioni definite dall'utente) cioè creare una stringa in maiuscolo e prendere un valore e aumentarne la potenza.

Di seguito è illustrato il set di dati che utilizzeremo in questo esempio:



table

vai in c ++

Il nostro scopo è rendere la prima lettera della colonna in maiuscolo e aumentare la potenza della seconda colonna con il valore della terza colonna.

Cominciamo scrivendo il codice java per ogni UDF. Inoltre dobbiamo configurare 4 JAR nel nostro progetto java per evitare errori di compilazione.
Innanzitutto, creeremo programmi java, entrambi sono riportati di seguito:



Upper.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 (Tuple input) genera IOException {if (input == null || input.size () == 0) return null try {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (Eccezione e) {throw WrappedIOException.wrap ('Caught exception processing input row', e)}}}

Power.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 exec (Tuple input) throws IOException {try { int base = (Intero) input.get (0) int esponente = (Intero) input.get (1) risultato lungo = 1 / * Probabilmente non è il metodo più efficiente ... * / per (int i = 0 i risultato) {// Siamo traboccati. Fornisci un avviso, ma non generare un'eccezione //. warn ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // Restituire null indicherà a Pig che abbiamo fallito ma // vogliamo continuare l'esecuzione. return null}} return result} catch (Exception e) {// Il lancio di un'eccezione causerà il fallimento dell'attività. lancia una nuova IOException ('È successo qualcosa di brutto!', e)}}}

Per rimuovere gli errori di compilazione, dobbiamo configurare 4 vasi nel nostro progetto java.


Fare clic sul pulsante Download per scaricare i JAR

[buttonleads form_title = 'Scarica codice' redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = 'Scarica JAR']

Ora esportiamo i file JAR per entrambi i codici java. Si prega di controllare i passaggi seguenti per la creazione di JAR.

Qui, abbiamo mostrato per un programma, procedere allo stesso modo anche nel programma successivo.

Dopo aver creato i JAR e i file di testo, abbiamo spostato tutti i dati nel cluster HDFS, che è rappresentato dalle seguenti immagini:

Nel nostro set di dati, i campi sono separati da virgole (,).

mergesort in c ++

Dopo aver spostato il file, abbiamo creato uno script con estensione .pig e inserito tutti i comandi in quel file di script.

Ora nel terminale, digita PIG seguito dal nome del file di script che è mostrato nell'immagine seguente:

Qui, questo è l'output per eseguire lo script pig.

numero di fibonacci c ++

Hai domande per noi? Per favore menzionali nella sezione commenti e ti risponderemo.

Post correlati:

Passaggi per creare UDF in Apache Pig

Introduzione ad Apache Hive