Fungsi dibangun untuk tujuan tertentu untuk melakukan operasi seperti Matematika, aritmatika, logis, dan relasional pada operan nama kolom tabel.
Fungsi bawaan
Ini adalah fungsi yang sudah tersedia di Hive. Pertama, kita harus memeriksa persyaratan aplikasi, dan kemudian kita dapat menggunakan fungsi bawaan ini di aplikasi kita. Kita dapat memanggil fungsi-fungsi ini langsung di aplikasi kita.
Sintaks dan tipe disebutkan di bagian berikut.
Jenis Fungsi Bawaan di HIVE
- Fungsi Koleksi
- Fungsi Tanggal
- Fungsi Matematika
- Fungsi Bersyarat
- Fungsi String
- Misc. Fungsi
Fungsi Koleksi:
Fungsi ini digunakan untuk koleksi. Koleksi berarti pengelompokan elemen dan mengembalikan satu atau larik elemen bergantung pada jenis pengembalian yang disebutkan dalam nama fungsi.
Jenis Pengembalian | Nama Fungsi | Deskripsi |
---|---|---|
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 |
Larik | Map_keys (Peta | Ini akan mengambil dan memberikan array yang berisi kunci dari peta input. Di sini array tidak berurutan |
Larik | Map_values (Peta | Ini akan mengambil dan memberikan array yang berisi nilai-nilai dari peta masukan. Di sini array tidak berurutan |
Larik | Sort_array (Array | mengurutkan larik masukan dalam urutan menaik dari larik dan elemen dan mengembalikannya |
Fungsi Tanggal:
Ini digunakan untuk melakukan Manipulasi Tanggal dan Konversi jenis Tanggal dari satu jenis ke jenis lainnya:
Nama Fungsi | Jenis Pengembalian | Deskripsi |
---|---|---|
Unix_Timestamp () | BigInt | Kami akan mendapatkan stempel waktu Unix saat ini dalam hitungan detik |
To_date (stempel waktu string) | tali | Ini akan mengambil dan memberikan bagian tanggal dari string timestamp: |
tahun (tanggal string) | INT | Ini akan mengambil dan memberikan bagian tahun dari tanggal atau string stempel waktu |
kuartal (tanggal / stempel 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 stempel waktu |
Date_sub (tanggal mulai string, hari int) | tali | Ini akan mengambil dan memberikan Pengurangan jumlah hari hingga tanggal mulai |
Tanggal sekarang | tanggal | Ini akan mengambil dan memberikan tanggal saat ini di awal evaluasi kueri |
_Hari TERAKHIR (tanggal string) | tali | Ini akan mengambil dan memberikan hari terakhir dari bulan dimana tanggal tersebut berasal |
trunc (tanggal string, format string) | tali | Ini akan mengambil dan memberikan tanggal yang terpotong ke unit yang ditentukan oleh format. Format yang didukung dalam hal ini: MONTH / MON / MM, YEAR / YYYY / YY. |
Fungsi Matematika :
Fungsi-fungsi ini digunakan untuk Operasi Matematika. Alih-alih membuat UDF, kami memiliki beberapa fungsi matematika bawaan di Hive.
Nama Fungsi | Jenis Pengembalian | Deskripsi |
---|---|---|
bulat (DOUBLE X) | DUA KALI LIPAT | Ini akan mengambil dan mengembalikan nilai BIGINT yang dibulatkan dari X |
bulat (DOUBLE X, INT d) | DUA KALI LIPAT | Ini akan mengambil dan mengembalikan X dibulatkan ke tempat desimal d |
bround (DOUBLE X) | DUA KALI LIPAT | Ini akan mengambil dan mengembalikan nilai BIGINT yang dibulatkan dari X menggunakan mode pembulatan HALF_EVEN |
lantai (DOUBLE X) | BIGINT | Ini akan mengambil dan mengembalikan nilai BIGINT maksimum yang sama dengan atau kurang dari nilai X. |
langit-langit (DOUBLE a), langit-langit (DOUBLE a) | BIGINT | Ini akan mengambil dan mengembalikan nilai BIGINT minimum yang sama atau lebih besar dari nilai X. |
Rand (), Rand (INT seed) | DUA KALI LIPAT | Ini akan mengambil dan mengembalikan nomor acak yang didistribusikan secara seragam dari 0 hingga 1 |
Fungsi Bersyarat:
Fungsi ini digunakan untuk pemeriksaan nilai bersyarat.
Nama Fungsi | Jenis Pengembalian | Deskripsi |
---|---|---|
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Ini akan mengambil dan memberi nilai True saat Kondisi Tes benar, memberi nilai False Atau Null sebaliknya. |
ISNULL (X) | Boolean | Ini akan mengambil dan memberikan true jika X adalah NULL dan false sebaliknya. |
ISNOTNULL (X) | Boolean | Ini akan mengambil dan memberikan true jika X bukan NULL dan false sebaliknya. |
Fungsi String:
Manipulasi string dan operasi string fungsi-fungsi ini dapat dipanggil.
Nama Fungsi | Jenis Pengembalian | Deskripsi |
---|---|---|
mundur (string X) | tali | Ini akan memberikan string X yang terbalik |
rpad (string str, int length, string pad) | tali | Ini akan mengambil dan memberi str, yang empuk kanan dengan pad dengan panjang (nilai integer) |
rtrim (string X) | tali | Ini akan mengambil dan mengembalikan string yang dihasilkan dari pemangkasan spasi dari ujung (sisi kanan) X Misalnya , rtrim ('hasil') menghasilkan 'hasil' |
ruang (INT n) | tali | Ini akan mengambil dan memberi string n spasi. |
belah (STRING str, STRING tepuk) | Himpunan | Split str around pat (tepuk 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 fungsi sendiri untuk memenuhi persyaratan klien tertentu. Ini dikenal sebagai UDF di Hive. Fungsi yang Ditentukan Pengguna ditulis dalam Java untuk modul tertentu.
Beberapa UDF dirancang khusus agar kode dapat digunakan kembali dalam kerangka aplikasi. Pengembang akan mengembangkan fungsi ini di Java dan mengintegrasikan UDF tersebut dengan Hive.
Selama eksekusi Query, pengembang bisa langsung menggunakan kode, dan UDF akan mengembalikan keluaran sesuai dengan tugas yang ditentukan pengguna. Ini akan memberikan kinerja tinggi dalam hal pengkodean dan eksekusi.
Sebagai contoh, untuk stemming string kita tidak memiliki fungsi yang telah ditentukan sebelumnya di Hive, untuk ini kita dapat menulis UDF stem di Java. Dimanapun kami membutuhkan fungsionalitas Stem, kami dapat langsung memanggil UDF Stem ini di Sarang.
Di sini fungsi batang berarti memperoleh kata-kata dari kata-kata akarnya. Ini seperti algoritma stemming yang mereduksi kata "ingin", "berharap", dan "ingin" menjadi akar kata "keinginan". Untuk melakukan fungsionalitas jenis ini, kita dapat menulis UDF di java dan mengintegrasikannya dengan Hive.
Bergantung pada kasus penggunaan, UDF dapat ditulis, itu akan menerima dan menghasilkan jumlah nilai input dan output yang berbeda.
Tipe umum UDF akan menerima nilai input tunggal dan menghasilkan nilai output tunggal. Jika UDF digunakan dalam kueri, maka UDF akan dipanggil sekali untuk setiap baris dalam kumpulan data hasil.
Dengan cara lain, ia dapat menerima sekelompok nilai sebagai masukan dan mengembalikan nilai keluaran tunggal juga.