Grisprogrammering: Apache Pig Script med UDF i HDFS-läge



Grisprogrammering: Apache Pig Script med UDF i HDFS-läge. Här är ett blogginlägg för att köra Apache Pig-skript med UDF i HDFS-läge ...

I de tidigare blogginläggen såg vi hur man börja med Grisprogrammering och skript . Vi har sett stegen för att skriva en Grisskript i HDFS-läge och utan UDF. I den tredje delen av denna serie kommer vi att granska stegen för att skriva ett grisskript med UDF i HDFS-läge .

Vi har förklarat hur man implementerar Pig UDF genom att skapa inbyggda funktioner för att förklara funktionaliteten hos Pig inbyggd funktion. För bättre förklaring har vi tagit två inbyggda funktioner. Vi har gjort detta med hjälp av ett grisskript.





Här har vi tagit ett exempel och vi har använt både UDF (användardefinierade funktioner) dvs. att skapa en sträng i versaler och ta ett värde och höja dess kraft.

Datauppsättningen visas nedan som vi ska använda i det här exemplet:



table

Vårt mål är att göra första kolumnbokstaven i versaler och höja kraften i den andra kolumnen med värdet på tredje kolumnen.

Låt oss börja med att skriva javakoden för varje UDF. Vi måste också konfigurera 4 JAR i vårt java-projekt för att undvika kompileringsfel.
Först kommer vi att skapa Java-program, båda anges nedan:



Övre.java

importera java.io.IOException importera org.apache.pig.EvalFunc importera org.apache.pig.data.Tuple importera org.apache.pig.impl.util.WrappedIOException @SuppressWarnings ('deprecation') public class Övre utvidgar EvalFunc {public String exec (Tuple input) kastar IOException {if (input == null || input.size () == 0) returnerar null try {String str = (String) input.get (0) str = str.toUpperCase () return str} fånga (Undantag e) {kasta WrappedIOException.wrap ('Fångat undantagsbehandling ingångsrad', e)}}

Power.java

importera java.io.IOException importera org.apache.pig.EvalFunc importera org.apache.pig.PigWarning importera org.apache.pig.data.Tuple allmän klass Pow förlänger EvalFunc {public Long exec (Tuple input) kastar IOException {try { int base = (Integer) input.get (0) int exponent = (Integer) input.get (1) long result = 1 / * Förmodligen inte den mest effektiva metoden ... * / för (int i = 0 i resultat) {// Vi flödade över. Ge en varning, men kast inte ett // undantag. varna ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // Återgå till null indikerar för Pig att vi misslyckades men // vi vill fortsätta körningen. return null}} returnera resultat} fångst (Undantag e) {// Att kasta ett undantag gör att uppgiften misslyckas. kasta ny IOException ('Något dåligt hände!', e)}}}

För att ta bort kompileringsfel måste vi konfigurera 4 JAR i vårt java-projekt.


Klicka på knappen Hämta för att ladda ner JAR

[buttonleads form_title = ”Download Code” redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = ”Ladda ner JAR”]

hur man ställer in förmörkelse

Nu exporterar vi JAR-filer för båda java-koderna. Kontrollera nedanstående steg för att skapa JAR.

Här har vi visat för ett program, fortsätt på samma sätt i nästa program också.

Efter att ha skapat JAR och textfiler har vi flyttat all data till HDFS-kluster, vilket avbildas av följande bilder:

I vår dataset är fälten separerade med komma (,).

transformationer i informatica med exempel

Efter att ha flyttat filen har vi skapat skript med .pig-tillägget och lagt alla kommandon i den skriptfilen.

Nu i terminalen skriver du PIG följt av namnet på skriptfilen som visas i följande bild:

Här är detta resultatet för att köra griskriptet.

Har du en fråga till oss? Vänligen nämna dem i kommentarfältet så återkommer vi till dig.

Relaterade inlägg:

Steg för att skapa UDF i Apache Pig

Introduktion till Apache Hive