Fungsi Hive: Contoh Bawaan & UDF [Fungsi Buatan Pengguna].
Fungsi dibangun untuk tujuan tertentu untuk melakukan operasi seperti Matematika, aritmatika, logika, dan relasional pada operan nama kolom tabel.
Fungsi bawaan
Ini adalah fungsi-fungsi yang sudah tersedia di Hive. Pertama, kita harus memeriksa persyaratan aplikasi, dan kemudian kita dapat menggunakan fungsi bawaan ini dalam aplikasi kita. Kita dapat memanggil fungsi-fungsi ini langsung di aplikasi kita.
Sintaks dan jenisnya disebutkan di bagian berikut.
Jenis Fungsi Bawaan di HIVE
- Fungsi Pengumpulan
- Fungsi Tanggal
- Fungsi Matematika
- Fungsi Bersyarat
- Fungsi String
- Lain-lain Fungsi
Fungsi Pengumpulan
Fungsi-fungsi ini digunakan untuk koleksi. Koleksi berarti pengelompokan elemen dan pengembalian elemen tunggal atau larik bergantung pada tipe pengembalian yang disebutkan dalam nama fungsi.
Jenis Pengembalian | Nama Fungsi | Uraian Teknis |
---|---|---|
INT | ukuran (Peta ) | Ini akan mengambil dan memberikan nomor komponen dalam tipe peta |
INT | ukuran (Array ) | Ini akan mengambil dan memberikan nomor elemen dalam tipe array |
Himpunan | Map_keys(Peta ) | Ini akan mengambil dan memberikan array yang berisi kunci peta masukan. Di sini array tidak berurutan |
Himpunan | Nilai_Peta(Peta ) | Ini akan mengambil dan memberikan array yang berisi nilai peta input. Di sini array tidak berurutan |
Himpunan | Sortir_array(Array ) | mengurutkan array input dalam urutan array dan elemen dan mengembalikannya |
Fungsi Tanggal
Ini digunakan untuk melakukan Manipulasi Tanggal dan Konversi tipe Tanggal dari satu tipe ke tipe lainnya:
Nama Fungsi | Jenis Pengembalian | Uraian Teknis |
---|---|---|
Unix_Stempel Waktu() | BigInt | Kami akan mendapatkan arus Unix cap waktu dalam hitungan detik |
Sampai_tanggal(cap waktu string) | string | Ini akan mengambil dan memberikan bagian tanggal dari string stempel waktu: |
tahun (tanggal string) | INT | Ini akan mengambil dan memberikan bagian tahun dari tanggal atau string stempel waktu |
kuartal (tanggal/cap waktu/string) | INT | Ini akan mengambil dan memberikan kuartal tahun ini untuk tanggal, stempel waktu, atau string dalam rentang 1 hingga 4 |
bulan (tanggal string) | INT | Ini akan memberikan bagian bulan dari tanggal atau string stempel waktu |
jam (tanggal string) | INT | Ini akan mengambil dan memberikan jam stempel waktu |
menit (tanggal string) | INT | Ini akan mengambil dan memberikan menit cap waktu |
Date_sub(tanggal mulai string, int hari) | string | Ini akan mengambil dan memberikan Pengurangan jumlah hari ke tanggal mulai |
Tanggal sekarang | tanggal | Ini akan mengambil dan memberikan tanggal saat ini pada awal evaluasi kueri |
_hari TERAKHIR (tanggal string) | string | Ini akan mengambil dan memberikan hari terakhir pada bulan dimana tanggal tersebut berada |
trunc(tanggal string, format string) | string | Ini akan mengambil dan memberikan tanggal terpotong ke unit yang ditentukan oleh format.
Format yang didukung dalam hal ini: BULAN/SENIN/MM, TAHUN/YYYY/YY. |
Fungsi Matematika
Fungsi-fungsi ini digunakan untuk Matematika Operations. Daripada membuatUDF, kami memiliki beberapa fungsi matematika bawaan di Hive.
Nama Fungsi | Jenis Pengembalian | Uraian Teknis |
---|---|---|
bulat(GANDA X) | DUA KALI LIPAT | Ini akan mengambil dan mengembalikan nilai BIGINT X yang dibulatkan |
bulat(GANDA X, INT d) | DUA KALI LIPAT | Ini akan mengambil dan mengembalikan X yang dibulatkan ke tempat desimal d |
coklat(GANDA X) | DUA KALI LIPAT | Ini akan mengambil dan mengembalikan nilai BIGINT X yang dibulatkan menggunakan mode pembulatan HALF_EVEN |
lantai(GANDA X) | BESAR | Ini akan mengambil dan mengembalikan nilai BIGINT maksimum yang sama dengan atau kurang dari nilai X |
langit-langit(GANDA a), langit-langit(GANDA a) | BESAR | Ini akan mengambil dan mengembalikan nilai BIGINT minimum yang sama dengan atau lebih besar dari nilai X |
rand(), rand(biji INT) | DUA KALI LIPAT | Ini akan mengambil dan mengembalikan nomor acak yang didistribusikan secara seragam dari 0 hingga 1 |
Fungsi Bersyarat
Fungsi-fungsi ini digunakan untuk pemeriksaan nilai bersyarat.
Nama Fungsi | Jenis Pengembalian | Uraian Teknis |
---|---|---|
if(Boolean testCondition, T nilaiBenar, T nilaiFalseOrNull) | T | Ini akan mengambil dan memberi nilai True kapan Kondisi Tes benar, memberikan nilai False atau Null jika tidak. |
TIDAK ADA( X) | Boolean | Ia akan mengambil dan memberikan true jika X bernilai NULL, dan false jika tidak. |
BUKANNULL(X ) | Boolean | Ia akan mengambil dan memberikan true jika X bukan NULL, dan false jika tidak. |
Fungsi String
Manipulasi string dan operasi string dapat memanggil fungsi-fungsi ini.
Nama Fungsi | Jenis Pengembalian | Uraian Teknis |
---|---|---|
mundur (string X) | string | Ini akan menghasilkan string X yang terbalik |
rpad(string str, int panjang, pad string) | string | Itu akan mengambil dan memberikan str, yang diisi dengan pad kanan dengan panjang (nilai integer) |
trim(string X) | string | Ini akan mengambil dan mengembalikan string yang dihasilkan dari pemangkasan spasi dari ujung (sisi kanan) X Misalnya, rtrim(' hasil ') menghasilkan ' hasil' |
spasi(INT n) | string | Ini akan mengambil dan memberikan string n spasi. |
terbelah(STRING str, STRING tepuk) | susunan | Membagi str di sekitar pat (pat adalah ekspresi reguler). |
Str_to_map(teks[, pembatas1, pembatas2]) | peta | Ini akan membagi teks menjadi pasangan nilai kunci menggunakan dua pembatas. |
UDF (Fungsi Buatan Pengguna)
Di Hive, pengguna dapat menentukan fungsinya sendiri untuk memenuhi kebutuhan klien tertentu. Ini dikenal sebagai UDF di Hive. Fungsi Buatan Pengguna tertulis di Java untuk modul tertentu.
Beberapa UDF dirancang khusus untuk penggunaan kembali kode dalam kerangka aplikasi. Pengembang akan mengembangkan fungsi-fungsi ini di Java dan mengintegrasikan UDF tersebut dengan Hive.
Selama eksekusi Kueri, pengembang dapat langsung menggunakan kode tersebut, dan UDF akan mengembalikan keluaran sesuai dengan tugas yang ditentukan pengguna. Ini akan memberikan kinerja tinggi dalam hal pengkodean dan eksekusi.
Misalnya, untuk stemming string, kami tidak memiliki fungsi standar apa pun di Hive. Untuk ini, kita dapat menulis batang UDF di dalamnya JavaDi mana pun kita memerlukan fungsionalitas Stem, kita dapat langsung memanggil UDF Stem ini di Hive.
Di sini fungsi batang berarti memperoleh kata dari kata dasar. Ini seperti algoritma stemming yang mereduksi kata “berharap”, “berharap”, dan “keinginan” menjadi akar kata “keinginan”. Untuk menjalankan fungsionalitas jenis ini, kita dapat menulis UDF di dalamnya Java dan mengintegrasikannya dengan Sarang lebah.
Tergantung pada kasus penggunaannya, UDF dapat ditulis. Ini akan menerima dan menghasilkan jumlah nilai input dan output yang berbeda.
Tipe umum UDF akan menerima satu nilai masukan dan menghasilkan satu nilai keluaran. Jika UDF digunakan dalam kueri, maka UDF akan dipanggil satu kali untuk setiap baris dalam kumpulan data hasil.
Dengan cara lain, ia dapat menerima sekelompok nilai sebagai masukan dan juga mengembalikan nilai keluaran tunggal.