Video: Hive and Spark Integration Tutorial | Hadoop Tutorial for Beginners 2018 | Hadoop Training Videos #1 2024
Konsep windowing, diperkenalkan pada standar SQL: 2003, memungkinkan pemrogram SQL membuat bingkai dari data yang dengannya fungsi agregat dan jendela lainnya dapat beroperasi. HiveQL sekarang mendukung windowing sesuai standar SQL. Contohnya cukup membantu saat menjelaskan fungsi windowing dan aggregate.
Penundaan keberangkatan datang dengan wilayah saat terbang adalah mode perjalanan yang Anda pilih. Tidak mengherankan bila data penerbangan RITA-compiled mencakup informasi ini. & ldquo; Apa sebenarnya penundaan penerbangan rata-rata per hari & rdquo; ? Permintaan dalam daftar berikut menghasilkan penundaan keberangkatan rata-rata per hari di tahun 2008.
(A) hive (flightdata)> CREATE VIEW avgdepdelay AS> SELECT DayOfWeek, AVG (DepDelay) DARI GROUP FlightInfo2008 BY DayOfWeek; OK Waktu yang dibutuhkan: 0. 121 detik (B) sarang (flightdata)> SELECT * FROM avgdepdelay; … OK 1 10. 269990244459473 2 8. 97689712068735 3 8. 289761053658728 4 9. 772897177836702 5 12. 158036387869656 6 8. 645680904903614 7 11. 568973392595312 Waktu yang dibutuhkan: 18. 6 detik, Diambil: 7 baris
TGIF, atau & ldquo; Alhamdulillah hari Jumat, & rdquo; tidak berlaku untuk semua orang Seharusnya tidak mengherankan bahwa Jumat - Hari ke 5 di bawah hasil di Langkah (B) - memiliki jumlah penundaan tertinggi.
Bagaimanapun, tentang query di Langkah (A): Hive's Data Definition Language (DDL) juga mencakup pernyataan CREATE VIEW, yang bisa sangat berguna. Pada Hive, tampilan memungkinkan kueri disimpan namun data tidak disimpan seperti pada tabel Create Table as Select (CTAS).
Bila sebuah pandangan dirujuk dalam HiveQL, Hive mengeksekusi query dan kemudian menggunakan hasilnya, yang bisa menjadi bagian dari query yang lebih besar. Ini bisa sangat berguna untuk menyederhanakan pertanyaan kompleks dan memecahnya menjadi komponen logis. Selain itu, perhatikan klausa GROUP BY, yang mengumpulkan semua hari per minggu dan memungkinkan fungsi agregat AVG memberikan jawaban konsolidasi per hari.
Informasi ini berguna, tentu saja, tapi bagaimana jika Anda ingin melihat beberapa nomor individu per hari? Mengkonsolidasikan data dengan GROUP BY, dan Anda memiliki jawaban yang Anda cari, meskipun Anda juga kehilangan informasi. Memecahkan masalah kehilangan informasi ini adalah dimana windowing menjadi sangat berguna.
Berikut adalah pertanyaan lain tentang data penerbangan RITA 2008 yang bisa menjawab Apache Hive: & ldquo; Berapakah penerbangan pertama antara Bandara X dan Y & rdquo; ? Anggaplah bahwa selain informasi ini, Anda ingin tahu tentang penerbangan berikutnya, kalau-kalau Anda bukan seorang & ldquo; orang pagi.& rdquo; Nah, ini adalah pekerjaan untuk windowing di HiveQL! Daftar berikut memberi Anda pertanyaan yang menjawab pertanyaan-pertanyaan ini.
(A) sarang (flightdata)> pilih f08. Bulan, f08. DayOfMonth, cr. deskripsi, f08 Asal, f08. Dest, f08. FlightNum, f08. DepTime, MIN (f08. DepTime) OVER (PARTISI OLEH f08. DayOfMonth ORDER BY f08. DepTime) FROM flightinfo2008 f08 JOIN Carriers cr ON f08. UniqueCarrier = cr. kode WHERE f08 Asal = 'JFK' DAN f08. Dest = 'ORD' DAN f08. Bulan = 1 DAN f08. DepTime! = 0; … OK 1 1 JetBlue Airways JFK ORD 903 641 641 1 1 American Airlines Inc. JFK ORD 1323 833 641 1 1 JetBlue Airways JFK ORD 907 929 641 1 1 Comair Inc. JFK ORD 5083 945 641 1 1 Comair Inc. JFK ORD 5634 1215 641 1 1 JetBlue Airways JFK ORD 915 1352 641 1 1 American Airlines Inc. JFK ORD 1323 833 641 1 1 JetBlue Airways JFK ORD 907 929 641 1 1 Comair Inc. JFK ORD 5083 945 641 1 1 Comair Inc. JFK ORD 5634 1215 641 1 1 JetBlue Airways JFK ORD 915 1352 641 1 1 American Airlines Inc. JFK ORD 1815 1610 641 1 JetBlue Airways JFK ORD 917 1735 641 1 1 Comair Inc. JFK ORD 5469 1749 641 1 1 Comair Inc. JFK ORD 5492 2000 641 1 1 JetBlue Airways JFK ORD 919 2102 641 1 31 JetBlue Airways JFK ORD 919 48 48 1 31 JetBlue Airways JFK ORD 903 635 48 1 31 Comair Inc. JFK ORD 5447 650 48 1 31 American Airlines Inc. JFK ORD 1323 840 48 1 31 JetBlue Airways JFK ORD 907 921 48 1 31 JetBlue Airways JFK ORD 917 1859 48
Pada Langkah (A), klausa GROUP BY diganti dengan klausa OVER dimana Anda menentukan PARTITION atau jendela di mana Anda ingin fungsi agregat MIN beroperasi. Juga termasuk klausa ORDER BY sehingga Anda dapat melihat penerbangan berikutnya setelah yang pertama.
Seperti yang dapat Anda lihat dari daftar, pada tanggal 31 Januari, JetBlue memiliki penerbangan awal yang bagus pada pukul 12: 48 a. m. - Untuk yang lebih baru, at 6:35 a. m. Isu-isu di awal terbit, perhatikan bahwa Anda telah menyimpan informasi tersebut dalam keluaran kueri yang akan hilang jika Anda memilih untuk menggunakan klausa GROUP BY lagi.
Kemampuan ini sendiri membuat windowing fitur yang kuat, dan masih ada lagi. Seiring dengan windowing dalam rilis Hive 0. 11, masyarakat menyediakan beberapa fungsi analisis yang dapat Anda gunakan bersamaan dengan windowing. Yang juga Anda inginkan adalah fungsi ini: RANK, ROW_NUMBER, DENSE_RANK, CUME_DIST, PERCENT_RANK, dan NTILE.
Akhirnya, jangan lewatkan gunanya JOIN: Ini adalah contoh praktis dari join batin dimana Anda bergabung dengan tabel FlightInfo2008 dengan tabel Carriers untuk mendapatkan nama maskapai penerbangan - bukan daripada kode samar yang ditemukan di tabel FlightInfo2008.