Pemrograman Pig: Apache Pig Script dengan UDF dalam Mode HDFS



Pemrograman Pig: Apache Pig Script dengan UDF dalam Mode HDFS. Berikut adalah posting blog untuk menjalankan script Apache Pig dengan UDF dalam Mode HDFS ...

Di posting blog sebelumnya kita melihat bagaimana memulainya Pemrograman dan Skrip Babi . Kami telah melihat langkah-langkah untuk menulis a Pig Script dalam Mode HDFS dan tanpa UDF. Di bagian ketiga dari seri ini kita akan meninjau langkah-langkah untuk menulis skrip Pig UDF dalam Mode HDFS .

Kami telah menjelaskan cara mengimplementasikan UDF Pig dengan membuat fungsi bawaan untuk menjelaskan fungsionalitas fungsi bawaan Pig. Untuk penjelasan yang lebih baik, kami telah mengambil dua fungsi bawaan. Kami telah melakukan ini dengan bantuan skrip babi.





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

java bagaimana mengakhiri program

Dataset digambarkan di bawah ini yang akan kita gunakan dalam contoh ini:



table

Tujuan kami adalah untuk membuat huruf kolom pertama dalam huruf besar dan menaikkan kekuatan kolom ke-2 dengan nilai kolom ke-3.

Mari kita mulai dengan menulis kode java untuk setiap UDF. Juga kita harus mengkonfigurasi 4 JAR dalam proyek java kita untuk menghindari kesalahan kompilasi.
Pertama, kita akan membuat program java, keduanya diberikan di bawah ini:



Upper.java

impor java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.data.Tuple import org.apache.pig.impl.util.WrappedIOException @SuppressWarnings ('deprecation') public class Upper extends EvalFunc {public String exec (input Tuple) melempar IOException {if (input == null || input.size () == 0) mengembalikan null coba {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (Exception e) {throw WrappedIOException.wrap ('Baris input pemrosesan pengecualian yang tertangkap', e)}}}

Power.java

impor java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.PigWarning import org.apache.pig.data.Tuple public class Pow extends EvalFunc {public Long exec (Tuple input) melempar IOException {coba { int base = (Integer) input.get (0) int exponent = (Integer) input.get (1) long result = 1 / * Mungkin bukan metode yang paling efisien ... * / for (int i = 0 i result) {// Kami meluap. Berikan peringatan, tapi jangan berikan // pengecualian. warn ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // Mengembalikan null akan menunjukkan kepada Pig bahwa kita gagal tetapi // kita ingin melanjutkan eksekusi. return null}} return result} catch (Exception e) {// Melempar pengecualian akan menyebabkan tugas gagal. lempar IOException baru ('Sesuatu yang buruk terjadi!', e)}}}

Untuk menghapus kesalahan kompilasi, kita harus mengkonfigurasi 4 stoples dalam proyek java kami.


Klik pada tombol Unduh untuk mengunduh JAR

[buttonleads form_title = ”Kode Unduhan” redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = ”Unduh JARs”]

Sekarang, kami mengekspor file JAR untuk kedua kode java. Silakan periksa langkah-langkah di bawah ini untuk pembuatan JAR.

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

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

Dalam kumpulan data kami, bidang dipisahkan dengan koma (,).

implementasi antrian prioritas di java

Setelah memindahkan file, kami telah membuat skrip dengan ekstensi .pig dan meletakkan semua perintah di file skrip itu.

mengapa Anda harus belajar python

Sekarang di terminal, ketik PIG diikuti dengan nama file skrip yang ditunjukkan pada gambar berikut:

Di sini, ini adalah keluaran untuk menjalankan skrip pig.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar dan kami akan menghubungi Anda kembali.

Posting terkait:

Langkah-langkah untuk membuat UDF di Apache Pig

Pengantar Apache Hive