Pengaturcaraan Babi: Skrip Babi Apache dengan UDF dalam Mod HDFS



Pengaturcaraan Babi: Skrip Babi Apache dengan UDF dalam Mod HDFS. Berikut adalah catatan blog untuk menjalankan skrip Apache Pig dengan UDF dalam Mod HDFS ...

Dalam catatan blog sebelumnya kami melihat bagaimana untuk memulakannya Pengaturcaraan Babi dan Skrip . Kami telah melihat langkah-langkah untuk menulis a Babi Babi dalam Mod HDFS dan tanpa UDF. Pada bahagian ketiga siri ini kita akan mengkaji langkah-langkah untuk menulis skrip Babi dengan UDF dalam Mod HDFS .

Kami telah menerangkan cara melaksanakan Pig UDF dengan membuat fungsi bawaan untuk menerangkan fungsi fungsi bawaan Babi. Untuk penjelasan yang lebih baik, kami telah menggunakan dua fungsi terbina dalam. Kami telah melakukan ini dengan bantuan skrip babi.





Di sini, kami telah mengambil satu contoh dan kami telah menggunakan kedua-dua UDF (fungsi yang ditentukan pengguna) iaitu membuat rentetan dalam huruf besar dan mengambil nilai & meningkatkan kekuatannya.

Set data digambarkan di bawah yang akan kita gunakan dalam contoh ini:



table

Tujuan kami adalah untuk membuat huruf lajur pertama dengan huruf besar dan meningkatkan kekuatan lajur ke-2 dengan nilai lajur ke-3.

Mari kita mulakan dengan menulis kod java untuk setiap UDF. Kita juga harus mengkonfigurasi 4 JAR dalam projek java kita untuk mengelakkan kesalahan penyusunan.
Pertama, kami akan membuat program java, kedua-duanya diberikan di bawah:



Atas.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.data.Tupport import org.apache.pig.impl.util.WrappedIOException @SuppressWarnings ('deprecation') kelas awam Upper meluaskan EvalFunc {awam String exec (Tuple input) membuang IOException {if (input == null || input.size () == 0) return null cuba {String str = (String) input.get (0) str = str.toUpperCase () return str} tangkapan (Pengecualian e) {lempar WrappedIOException.wrap ('Baris input pengecualian tertangkap pengecualian', e)}}}

Kuasa.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.Pig.PigWarning import org.apache.pig.data.Tup kelas awam Pow meluaskan EvalFunc {public Long exec (Tuple input) melemparkan IOException {cuba { int base = (Integer) input.get (0) int exponent = (Integer) input.get (1) hasil panjang = 1 / * Mungkin bukan kaedah yang paling berkesan ... * / untuk (hasil int i = 0 i) {// Kami meluap. Beri amaran, tetapi jangan membuang // pengecualian. amaran ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // Mengembalikan nol akan menunjukkan kepada Babi bahawa kita gagal tetapi // kita mahu meneruskan pelaksanaan. return null}} hasil kembali} tangkapan (Pengecualian e) {// Melemparkan pengecualian akan menyebabkan tugas gagal. lontarkan IOException baru ('Sesuatu yang buruk berlaku!', e)}}}

Untuk menghapuskan kesalahan penyusunan, kita harus mengkonfigurasi 4 JAR dalam projek java kami.

cara menggunakan iterator java


Klik pada butang Muat turun untuk memuat turun JAR

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

Sekarang, kami mengeksport fail JAR untuk kedua-dua kod java. Sila periksa langkah-langkah berikut untuk membuat JAR.

Di sini, kami telah menunjukkan untuk satu program, teruskan dengan cara yang sama di program seterusnya juga.

Setelah membuat JAR dan fail teks, kami telah memindahkan semua data ke kluster HDFS, yang digambarkan oleh gambar berikut:

Dalam set data kami, medan dipisahkan koma (,).

bagaimana menggunakan perkhidmatan sekarang

Setelah memindahkan file, kami telah membuat skrip dengan ekstensi .pig dan memasukkan semua perintah dalam file skrip tersebut.

Sekarang di terminal, ketik PIG diikuti dengan nama fail skrip yang ditunjukkan dalam gambar berikut:

cara menyebarkan aplikasi java di aws

Di sini, ini adalah output untuk menjalankan skrip babi.

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda.

Catatan berkaitan:

Langkah-langkah untuk membuat UDF di Apache Pig

Pengenalan Apache Hive