Pig-Programmierung: Apache Pig-Skript mit UDF im HDFS-Modus



Pig-Programmierung: Apache Pig-Skript mit UDF im HDFS-Modus. Hier ist ein Blog-Beitrag zum Ausführen des Apache Pig-Skripts mit UDF im HDFS-Modus ...

In den vorherigen Blog-Beiträgen haben wir gesehen, wie wir anfangen sollen Pig Programmierung und Scripting . Wir haben die Schritte gesehen, um eine zu schreiben Pig Script im HDFS-Modus und ohne UDF. Im dritten Teil dieser Serie werden wir die Schritte zum Schreiben eines Pig-Skripts mit überprüfen UDF im HDFS-Modus .

Wir haben erklärt, wie Pig UDF implementiert wird, indem integrierte Funktionen erstellt werden, um die Funktionalität der integrierten Pig-Funktion zu erläutern. Zur besseren Erklärung haben wir zwei integrierte Funktionen übernommen. Wir haben dies mit Hilfe eines Schweineskripts getan.





Hier haben wir ein Beispiel genommen und sowohl die UDF (benutzerdefinierte Funktionen) verwendet, d. H. Eine Zeichenfolge in Großbuchstaben zu erstellen und einen Wert zu nehmen und seine Leistung zu erhöhen.

Der Datensatz ist unten dargestellt, den wir in diesem Beispiel verwenden werden:



table

Unser Ziel ist es, einen Buchstaben in der ersten Spalte in Großbuchstaben zu schreiben und die Potenz der zweiten Spalte mit dem Wert der dritten Spalte zu erhöhen.

Beginnen wir mit dem Schreiben des Java-Codes für jede UDF. Außerdem müssen wir in unserem Java-Projekt 4 JARs konfigurieren, um Kompilierungsfehler zu vermeiden.
Zuerst werden wir Java-Programme erstellen, die beide unten angegeben sind:



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') öffentliche Klasse Upper erweitert EvalFunc {public String exec (Tuple-Eingabe) löst IOException aus {if (input == null || input.size () == 0) return null try {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (Ausnahme e) {throw WrappedIOException.wrap ('Eingabezeile für Ausnahmeverarbeitung abgefangen', 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 erweitert EvalFunc {public Long exec (Tuple input) löst IOException {try {aus int base = (Integer) input.get (0) int exponent = (Integer) input.get (1) langes Ergebnis = 1 / * Wahrscheinlich nicht die effizienteste Methode ... * / für (int i = 0 i Ergebnis) {// Wir sind übergelaufen. Geben Sie eine Warnung aus, aber werfen Sie keine // Ausnahme aus. warn ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // Die Rückgabe von null zeigt Pig an, dass wir fehlgeschlagen sind, // aber die Ausführung fortsetzen möchten. return null}} return result} catch (Ausnahme e) {// Das Auslösen einer Ausnahme führt dazu, dass die Aufgabe fehlschlägt. neue IOException auslösen ('Es ist etwas Schlimmes passiert!', e)}}}

Um Kompilierungsfehler zu entfernen, müssen wir konfigurieren 4 Gläser in unserem Java-Projekt.

wie man tostring in java benutzt


Klicken Sie auf die Schaltfläche Herunterladen, um die JARs herunterzuladen

[buttonleads form_title = 'Code herunterladen' redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = 'JARs herunterladen']

Jetzt exportieren wir JAR-Dateien für beide Java-Codes. Bitte überprüfen Sie die folgenden Schritte für die JAR-Erstellung.

Hier haben wir für ein Programm gezeigt, gehen Sie auch im nächsten Programm auf die gleiche Weise vor.

Nach dem Erstellen der JARs und Textdateien haben wir alle Daten in den HDFS-Cluster verschoben, der in den folgenden Abbildungen dargestellt ist:

In unserem Datensatz werden Felder durch Kommas (,) getrennt.

Sortierliste c ++

Nach dem Verschieben der Datei haben wir ein Skript mit der Erweiterung .pig erstellt und alle Befehle in diese Skriptdatei eingefügt.

Geben Sie nun im Terminal PIG gefolgt vom Namen der Skriptdatei ein, die in der folgenden Abbildung dargestellt ist:

Was ist der Unterschied zwischen Git und Github?

Hier ist dies die Ausgabe zum Ausführen des Pig-Skripts.

Hast du eine Frage an uns? Bitte erwähnen Sie sie in den Kommentaren und wir werden uns bei Ihnen melden.

Zusammenhängende Posts:

Schritte zum Erstellen von UDF in Apache Pig

Einführung in Apache Hive