Cūku programmēšana: Apache Pig skripts ar UDF HDFS režīmā

Cūku programmēšana: Apache Pig skripts ar UDF HDFS režīmā. Šeit ir emuāra ziņojums, lai palaistu Apache Pig skriptu ar UDF HDFS režīmā ...

Iepriekšējos emuāra ierakstos mēs redzējām, kā sākt Cūku programmēšana un skriptu izveidošana . Mēs esam redzējuši soļus, lai uzrakstītu a Cūku skripts HDFS režīmā un bez UDF. Šīs sērijas trešajā daļā mēs pārskatīsim darbības, ar kurām rakstīt Pig skriptu UDF HDFS režīmā .



Mēs esam paskaidrojuši, kā ieviest Pig UDF, izveidojot iebūvētas funkcijas, lai izskaidrotu Pig iebūvētās funkcijas funkcionalitāti. Labākam skaidrojumam esam izmantojuši divas iebūvētās funkcijas. Mēs to esam izdarījuši ar cūku scenārija palīdzību.



Šeit mēs esam ņēmuši vienu piemēru un esam izmantojuši gan UDF (lietotāja definētas funkcijas), t.i., veidojot virkni lielajiem burtiem, gan ņemot vērtību un palielinot tā jaudu.

Datu kopa ir attēlota zemāk, kuru mēs izmantosim šajā piemērā:



table

Mūsu mērķis ir izveidot 1. kolonnas burtu ar lielajiem burtiem un palielināt 2. kolonnas jaudu ar 3. kolonnas vērtību.

Sāksim ar java koda ierakstīšanu katram UDF. Arī mums ir jākonfigurē 4 JAR mūsu Java projektā, lai izvairītos no kompilācijas kļūdām.
Pirmkārt, mēs izveidosim Java programmas, abas no tām ir norādītas zemāk:



Augšējā.java

importēt java.io.IOException importēt org.apache.pig.EvalFunc importēt org.apache.pig.data.Tuple importēt org.apache.pig.impl.util.WrappedIOException @SuppressWarnings ('deprecation') public class Upper paplašina EvalFunc {public String exec (Tuples ievade) izmet IOException {if (input == null || input.size () == 0) return null mēģiniet {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (izņēmums e) {thrake WrappedIOException.wrap ('Noķerts izņēmums apstrādā ievades rindu', e)}}}

Jauda.java

importēt java.io.IOException importēt org.apache.pig.EvalFunc importēt org.apache.pig.PigWarning importēt org.apache.pig.data.Tuple public class Pow paplašina EvalFunc {public Long exec (Tuple ievade) izmet IOException {mēģināt { int bāze = (vesels skaitlis) input.get (0) int eksponents = (vesels skaitlis) input.get (1) garš rezultāts = 1 / * Iespējams, ka tā nav visefektīvākā metode ... * / for (int i = 0 i rezultāts) {// Mēs pārpildījāmies. Sniedziet brīdinājumu, bet nemetiet // izņēmumu. warn ('Pārpilde!', PigWarning.TOO_LARGE_FOR_INT) // Atgriežot nulli, Pig tiks norādīts, ka mums neizdevās, bet // mēs vēlamies turpināt izpildi. return null}} return result} catch (izņēmums e) {// Izmetot izņēmumu, uzdevums neizdosies. mest jaunu IOException ('Notika kaut kas slikts!', e)}}}

Lai novērstu kompilācijas kļūdas, mums ir jākonfigurē 4 burkas mūsu java projektā.


Noklikšķiniet uz pogas Lejupielādēt, lai lejupielādētu JAR

[buttonleads form_title = ”Lejupielādēt kodu” redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = ”Lejupielādēt burkas”]

Tagad mēs eksportējam JAR failus abiem Java kodiem. Lūdzu, pārbaudiet tālāk norādītās darbības, lai izveidotu JAR.

Šeit mēs esam parādījuši vienai programmai, tāpat rīkojieties arī nākamajā programmā.

Pēc JAR un teksta failu izveidošanas visi dati ir pārvietoti uz HDFS kopu, kuru attēlo šādi attēli:

Mūsu datu kopā lauki ir atdalīti ar komatu (,).

Pēc faila pārvietošanas mēs esam izveidojuši skriptu ar paplašinājumu .pig un visas komandas ievietojuši skripta failā.

Tagad terminālā ierakstiet PIG, kam seko skripta faila nosaukums, kas parādīts šajā attēlā:

Šeit ir izeja cūku skripta palaišanai.

kā izmantot iterator Java

Vai mums ir jautājums? Lūdzu, pieminējiet tos komentāru sadaļā, un mēs ar jums sazināsimies.

Saistītās ziņas:

Darbības, lai izveidotu UDF Apache Pig

Ievads Apache Hive