Programiranje svinja: Apache Svinjska skripta s UDF-om u HDFS načinu

Programiranje svinja: Apache Svinjska skripta s UDF-om u HDFS načinu. Evo posta na blogu za pokretanje Apache Pig skripte s UDF-om u HDFS načinu ...

U prethodnim postovima na blogu vidjeli smo kako započeti Programiranje i skriptiranje svinja . Vidjeli smo korake za pisanje a Svinjska skripta u HDFS načinu i bez UDF-a. U trećem dijelu ove serije pregledat ćemo korake za pisanje svinjske skripte UDF u načinu HDFS .

Objasnili smo kako implementirati Pig UDF stvaranjem ugrađenih funkcija kako bismo objasnili funkcionalnost Pig ugrađene funkcije. Za bolje objašnjenje uzeli smo dvije ugrađene funkcije. To smo učinili uz pomoć svinjske skripte.





Ovdje smo uzeli jedan primjer i koristili smo i UDF (korisnički definirane funkcije), tj. Izradu niza velikim slovima i uzimanje vrijednosti i povećanje njegove snage.

Skup podataka prikazan je ispod kojeg ćemo koristiti u ovom primjeru:



table

Cilj nam je izraditi slovo 1. stupca velikim slovima i povećati snagu 2. stupca vrijednošću 3. stupca.

Počnimo s pisanjem java koda za svaki UDF. Također moramo konfigurirati 4 JAR-a u našem java projektu kako bismo izbjegli pogreške u kompilaciji.
Prvo ćemo stvoriti Java programe, oba su navedena u nastavku:



Gornja.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') javna klasa Upper proširuje EvalFunc {public String exec (Tuple input) baca IOException {if (input == null || input.size () == 0) return null try {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (Iznimka e) {throw WrappedIOException.wrap ('Uhvaćena obrada ulaznog retka iznimke, e)}}}

Snaga.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.PigWarning import org.apache.pig.data.Tuple javna klasa Pow proširuje EvalFunc {public Long exec (Tuple input) baca IOException {try { int base = (Integer) input.get (0) int exponent = (Integer) input.get (1) long result = 1 / * Vjerojatno nije najučinkovitija metoda ... * / for (int i = 0 i rezultat) {// Prelijevali smo se. Dajte upozorenje, ali ne bacajte // iznimku. warn ('Prelijevanje!', PigWarning.TOO_LARGE_FOR_INT) // Vraćanje nule označit će Svinji da nismo uspjeli, ali // želimo nastaviti izvršenje. return null}} return result} catch (Exception e) {// Bacanje iznimke uzrokovat će neuspjeh zadatka. baci novi IOException ('Nešto se loše dogodilo!', e)}}}

Da bismo uklonili pogreške pri kompiliranju, moramo to konfigurirati 4 JAR-a u našem java projektu.

pronađi najveći broj u nizu java


Kliknite gumb Preuzmi da biste preuzeli JAR-ove

[buttonleads form_title = ”Preuzmi kod” redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = ”Preuzmi JAR-ove”]

Sada izvozimo JAR datoteke za oba java koda. Molimo provjerite korake u nastavku za stvaranje JAR-a.

Ovdje smo pokazali za jedan program, nastavite na isti način i za sljedeći program.

Nakon stvaranja JAR-ova i tekstualnih datoteka, premjestili smo sve podatke u HDFS klaster, što je prikazano sljedećim slikama:

U našem skupu podataka polja su odvojena zarezom (,).

pronađi duljinu niza javascript

Nakon premještanja datoteke stvorili smo skriptu s nastavkom .pig i stavili sve naredbe u tu datoteku skripte.

Sada u terminalu upišite PIG nakon čega slijedi ime datoteke skripte koja je prikazana na sljedećoj slici:

Evo, ovo je izlaz za pokretanje pig skripte.

Imate pitanje za nas? Molimo navedite ih u odjeljku za komentare i javit ćemo vam se.

Vezane objave:

Koraci za stvaranje UDF-a u Apache Pig

Uvod u Apache Hive