Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Panggil fungsi yang ditetapkan pengguna dari Pig
Pig menyediakan kemampuan untuk memanggil fungsi yang ditentukan pengguna (UDFs) dari dalam skrip Pig. Anda dapat melakukan ini untuk menerapkan pengolahan kustom untuk digunakan dalam script Pig Anda. Bahasa yang saat ini didukung adalah Java, Python/Jython, dan JavaScript (meskipun JavaScript dukungan masih eksperimental.)
Bagian berikut menjelaskan cara mendaftarkan fungsi Anda dengan Pig sehingga Anda dapat memanggil mereka baik dari shell Pig atau dari dalam script Pig. Untuk informasi lebih lanjut tentang penggunaan UDFs dengan Babi, lihat dokumentasi Babi
Panggil file JAR dari Pig
Anda dapat menggunakan file JAR kustom dengan Pig menggunakan REGISTER
perintah dalam skrip Pig Anda. File JAR lokal atau sistem file remote seperti Amazon S3. Ketika script Pig berjalan, Amazon EMR download file JAR secara otomatis ke node master dan kemudian upload file JAR ke Hadoop didistribusikan cache. Dengan cara ini, file JAR secara otomatis digunakan yang diperlukan oleh semua contoh dalam cluster.
Untuk menggunakan file JAR dengan Pig
-
Upload file JAR kustom Anda ke Amazon S3.
-
Gunakan perintah
REGISTER
dalam script Pig Anda untuk menentukan bucket di Amazon S3 dari file JAR kustom.REGISTER
s3://amzn-s3-demo-bucket/path/mycustomjar.jar
;
Panggil Python/Jython script dari Pig
Anda dapat mendaftar script Python dengan Pig dan kemudian memanggil fungsi dalam script dari shell Pig atau dalam script Pig. Anda melakukan ini dengan menentukan lokasi skrip dengan register
kata kunci.
Karena ditulis dalam bahasa Java, Pig menggunakan mesin skrip Jython untuk mengurai skrip Python. Untuk informasi lebih lanjut tentang Jython, kunjungi http://www.jython.org/
Untuk memanggil skrip Python/Jython dari Pig
-
Menulis script Python dan meng-upload script ke lokasi di Amazon S3. Ini harus berupa bucket yang dimiliki oleh akun yang sama yang menciptakan kluster Pig, atau yang memiliki izin yang ditetapkan sehingga akun yang membuat kluster dapat mengaksesnya. Dalam contoh ini, skrip diunggah ke s3://amzn-s3-demo -bucket/pig/python.
-
Mulai cluster Pig. Jika Anda mengakses Pig dari shell Grunt, menjalankan cluster interaktif. Jika Anda menjalankan perintah Pig dari script, mulai cluster Pig scripted. Contoh ini dimulai cluster interaktif. Untuk informasi selengkapnya tentang cara membuat kluster Pig, lihat Kirim hasil karya Pig.
-
Untuk cluster interaktif, menggunakan SSH untuk terhubung ke node master dan menjalankan shell Grunt. Untuk informasi selengkapnya, lihat SSH ke node master.
-
Jalankan shell Grunt untuk Pig dengan mengetik
pig
pada baris perintah:pig
-
Daftarkan perpustakaan Jython dan script Python Anda dengan Pig menggunakan
register
kata kunci pada prompt perintah Grunt, seperti yang ditunjukkan pada perintah berikut, di mana Anda akan menentukan lokasi script Anda di Amazon S3:grunt> register 'lib/jython.jar'; grunt> register '
s3://amzn-s3-demo-bucket/pig/python/myscript.py
' using jython as myfunctions; -
Memuat data input. Contoh berikut beban masukan dari lokasi Amazon S3:
grunt> input = load '
s3://amzn-s3-demo-bucket/input/data.txt
' using TextLoader as (line:chararray); -
Anda sekarang dapat memanggil fungsi dalam skrip Anda dari dalam Pig dengan merujuknya menggunakan
myfunctions
:grunt> output=foreach input generate myfunctions.myfunction($1);