Pengendali di Apache Pig: Bahagian 1- Relational Operators



Catatan ini menerangkan mengenai Pengendali di Apache Pig. Lihatlah catatan ini untuk Operator di Babi Apache: Bahagian 1 - Operator Relasional.

Catatan ini adalah mengenai pengendali di Apache Pig.Apache Pig juga membolehkan anda menulis transformasi data yang rumit tanpa pengetahuan Java, menjadikannya sangat penting untuk .Mari kita lihat dengan cepat apa itu Pig dan Pig Latin dan cara yang berbeza di mana mereka boleh dikendalikan, sebelum menuju ke Operator.

Apa itu Apache Pig?

Apache Pig adalah bahasa prosedural peringkat tinggi untuk menanyakan set data besar menggunakan Hadoop dan Map Reduce Platform. Ini adalah paket Java, di mana skrip dapat dijalankan dari implementasi bahasa apa pun yang berjalan di JVM. Ini banyak digunakan dalam proses berulang.



Apache Pig mempermudah penggunaan Hadoop dengan membenarkan pertanyaan seperti SQL ke set data yang diedarkan dan memungkinkan untuk membuat tugas yang kompleks untuk memproses sejumlah besar data dengan cepat dan berkesan. Ciri terbaik Babi ialah, ia menyokong banyak ciri hubungan seperti Join, Group dan Aggregate.

Saya tahu Babi lebih menyerupai alat ETL dan ia mempunyai banyak ciri yang sama dengan alat ETL. Tetapi kelebihan alat Pig over ETL adalah ia dapat dijalankan di banyak pelayan secara serentak.



Apa itu Apache Pig Latin?

Apache Pig membuat abstraksi bahasa prosedural yang lebih sederhana di atas Map Reduce untuk memperlihatkan antara muka seperti Bahasa Permintaan Terstruktur (SQL) yang lebih mirip untuk aplikasi Hadoop yang disebut Apache Pig Latin, Jadi daripada menulis aplikasi Map Reduce yang berasingan, anda boleh menulis satu skrip dalam Apache Pig Latin yang secara automatik diparalelkan dan diedarkan di sekumpulan. Dengan kata mudah, Pig Latin, adalah urutan penyataan mudah yang mengambil input dan menghasilkan output. Data input dan output terdiri dari beg, peta, tupel dan skalar.

Kaedah Pelaksanaan Babi Apache:

Apache Pig mempunyai dua mod pelaksanaan:

  • Mod tempatan

Dalam ‘Local Mode’, data sumber akan diambil dari direktori tempatan dalam sistem komputer anda. Mod MapReduce dapat ditentukan menggunakan perintah ‘pig –x local’.



Pengendali dalam Apache Pig - 1

rentetan java memisahkan pelbagai pembatas
  • Mod MapReduce:

Untuk menjalankan Babi dalam mod MapReduce, anda memerlukan akses ke kluster Hadoop dan pemasangan HDFS. Mod MapReduce dapat ditentukan menggunakan perintah ‘babi’.

Pengendali Babi Apache:

Apache Pig Operators adalah bahasa prosedural tahap tinggi untuk meminta set data besar menggunakan Hadoop dan Map Reduce Platform. Pernyataan Latin Pig adalah pengendali yang mengambil hubungan sebagai input dan menghasilkan hubungan lain sebagai output. Pengendali ini adalah alat utama yang disediakan oleh Pig Latin untuk beroperasi pada data. Mereka membolehkan anda mengubahnya dengan menyusun, mengelompokkan, bergabung, memproyeksikan, dan menyaring.

Mari buat dua fail untuk menjalankan perintah:

Kami mempunyai dua fail dengan nama 'pertama' dan 'kedua.' Fail pertama mengandungi tiga bidang: pengguna, url & id.

Fail kedua mengandungi dua medan: url & rating. Kedua-dua fail ini adalah fail CSV.

Pengendali Apache Pig boleh dikelaskan sebagai: Hubungan dan Diagnostik.

Pengendali Perhubungan:

Pengendali hubungan adalah alat utama yang disediakan oleh Pig Latin untuk beroperasi pada data. Ia membolehkan anda mengubah data dengan menyusun, mengelompokkan, bergabung, memproyeksikan dan menyaring. Bahagian ini merangkumi pengendali perhubungan asas.

PINJAMAN:

Operator LOAD digunakan untuk memuatkan data dari sistem fail atau penyimpanan HDFS ke dalam hubungan Babi.

Dalam contoh ini, operator Beban memuat data dari fail 'pertama' ke bentuk hubungan 'loading1'. Nama medan adalah pengguna, url, id.

UNTUK SETIAP:

Pengendali ini menghasilkan transformasi data berdasarkan lajur data. Ia digunakan untuk menambah atau membuang medan dari hubungan. Gunakan operasi FOREACH-GENERATE untuk bekerja dengan lajur data.

Keputusan FOREACH:

PENAPIS:

Pengendali ini memilih tupel dari hubungan berdasarkan keadaan.

Dalam contoh ini, kami menyaring rekod dari ‘loading1’ apabila keadaan ‘id’ lebih besar daripada 8.

Keputusan PENAPIS:

SERTAI:

JOIN operator digunakan untuk melakukan hubungan dalaman, antara dua atau lebih hubungan berdasarkan nilai medan yang sama. Pengendali BERSAMA selalu melakukan penyambungan dalaman. Gabungan dalaman mengabaikan kunci kosong, jadi masuk akal untuk menyaringnya sebelum penyertaan.

Dalam contoh ini, sertai dua hubungan berdasarkan lajur ‘url’ dari ‘loading1’ dan ‘loading2’.

Hasil SERTAI:

PERINTAH OLEH:

Order By digunakan untuk menyusun hubungan berdasarkan satu atau lebih bidang. Anda boleh menyusun mengikut urutan menaik atau menurun menggunakan kata kunci ASC dan DESC.

Dalam contoh di bawah, kami menyusun data dalam loading2 dalam urutan menaik pada bidang penilaian.

PESANAN MENGIKUT Hasil :

JARAK:

Distinct membuang duplikat tupel dalam suatu hubungan. Mari kita ambil fail input seperti di bawah, yang mempunyai amr, omong kosong, 8 dan amr, myblog, 10 dua kali dalam fail. Apabila kami menerapkan data yang berbeza pada file ini, entri pendua akan dikeluarkan.

Keputusan DISTINCT:

KEDAI:

Stor digunakan untuk menyimpan hasil ke sistem fail.

Di sini kita berjimat memuatkan3 data ke dalam fail bernama menyimpan pada HDFS.

apa kilang di angularjs

Keputusan KEDAI:

KUMPULAN:

Pengendali KUMPULAN mengumpulkan kumpulan tupel dengan kunci kumpulan yang sama (medan kunci). Medan kunci akan menjadi tuple jika kunci kumpulan mempunyai lebih dari satu medan, jika tidak, ia akan menjadi jenis yang sama dengan kunci kumpulan. Hasil operasi KUMPULAN adalah hubungan yang merangkumi satu tuple setiap kumpulan.

Dalam contoh ini, kumpulan i

e hubungan ‘loading1’ mengikut urus lajur.

Keputusan KUMPULAN:

KUMPULAN:

COGROUP sama dengan pengendali GROUP. Untuk kebolehbacaan, pengaturcara biasanya menggunakan KUMPULAN apabila hanya satu hubungan yang terlibat dan KUMPULAN apabila pelbagai hubungan terlibat kembali.

Dalam contoh contoh ini kumpulan ‘loading1’ dan ‘loading2’ mengikut medan url dalam kedua-dua hubungan.

Keputusan KUMPULAN:

MENYEBERANG:

Operator CROSS digunakan untuk menghitung produk silang (produk Cartesian) yang mempunyai dua atau lebih hubungan.

Memohon produk silang pada pemuatan1 dan pemuatan2.

Keputusan CROSS:

HAD:

Operator LIMIT digunakan untuk mengehadkan jumlah tupel output. Sekiranya bilangan tupel output yang ditentukan sama atau melebihi jumlah tupel dalam hubungan, output akan merangkumi semua tupel dalam hubungan tersebut.

Keputusan TERHAD:

SPLIT:

Pengendali SPLIT digunakan untuk membahagi isi hubungan menjadi dua atau lebih hubungan berdasarkan beberapa ungkapan. Bergantung pada syarat yang dinyatakan dalam ungkapan.

Pisahkan pemuatan2 menjadi dua hubungan x dan y. x hubungan dibuat dengan memuatkan 2 mengandungi medan yang penarafannya lebih besar daripada 8 dan hubungan y mengandungi medan yang penarafannya kurang dari atau sama dengan 8

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

Catatan berkaitan:

Pengendali dalam Apache Pig - Pengendali Diagnostik

Langkah Membuat UDF di Apache Pig