Fungsi dibina untuk tujuan tertentu untuk melakukan operasi seperti Matematik, aritmetik, logik dan relasional pada operasi nama lajur jadual.
Fungsi terbina dalam
Ini adalah fungsi yang sudah ada di Hive. Pertama, kita harus memeriksa keperluan aplikasi, dan kemudian kita dapat menggunakan fungsi bawaan ini dalam aplikasi kita. Kita boleh memanggil fungsi ini secara langsung dalam aplikasi kita.
Sintaks dan jenisnya disebutkan di bahagian berikut.
Jenis Fungsi Buatan Dalam HIVE
- Fungsi Pengumpulan
- Fungsi Tarikh
- Fungsi Matematik
- Fungsi Bersyarat
- Fungsi Rentetan
- Pelbagai. Fungsi
Fungsi Pengumpulan:
Fungsi-fungsi ini digunakan untuk koleksi. Koleksi bermaksud pengelompokan elemen dan pemulangan tunggal atau susunan elemen bergantung pada jenis kembali yang disebut dalam nama fungsi.
Jenis Pulangan | Nama Fungsi | Penerangan |
---|---|---|
INT | ukuran (Peta | Ia akan mengambil dan memberikan nombor komponen dalam jenis peta |
INT | saiz (Array | Ia akan mengambil dan memberikan nombor elemen dalam jenis array |
Susun | Kunci_Peta (Peta | Ini akan mengambil dan memberikan array yang mengandungi kunci peta input. Di sini array tidak tersusun |
Susun | Nilai_Peta (Peta | Ini akan mengambil dan memberikan array yang mengandungi nilai peta input. Di sini array tidak tersusun |
Susun | Susun_array (Array | menyusun susunan input mengikut susunan menaik dan elemen dan mengembalikannya |
Fungsi Tarikh:
Ini digunakan untuk melakukan Manipulasi Tarikh dan Penukaran jenis Tarikh dari satu jenis ke jenis yang lain:
Nama Fungsi | Jenis Pulangan | Penerangan |
---|---|---|
Cap Unix_Tim () | BigInt | Kami akan mendapat cap waktu Unix semasa dalam beberapa saat |
To_date (cap masa rentetan) | tali | Ia akan mengambil dan memberikan bahagian tarikh rentetan cap waktu: |
tahun (tarikh rentetan) | INT | Ia akan mengambil dan memberikan tahun sebahagian daripada tarikh atau rentetan cap waktu |
suku (tarikh / cap waktu / rentetan) | INT | Ia akan mengambil dan memberikan suku tahun ini untuk tarikh, cap waktu, atau rentetan dalam julat 1 hingga 4 |
bulan (tarikh rentetan) | INT | Ia akan memberi bahagian pada tarikh atau rentetan cap waktu |
jam (tarikh rentetan) | INT | Ia akan mengambil dan memberikan jam cap waktu |
minit (tarikh rentetan) | INT | Ia akan mengambil dan memberikan minit cap waktu |
Date_sub (tarikh bermula rentetan, hari int) | tali | Ia akan mengambil dan memberikan Pengurangan bilangan hari hingga tarikh mula |
Tarikh semasa | Tarikh | Ia akan mengambil dan memberikan tarikh semasa pada permulaan penilaian pertanyaan |
_Day TERAKHIR (tarikh rentetan) | tali | Ia akan mengambil dan memberikan hari terakhir bulan yang menjadi tarikhnya |
trunc (tarikh rentetan, format rentetan) | tali | Ia akan mengambil dan memberikan tarikh yang dipotong ke unit yang ditentukan oleh format. Format yang disokong dalam ini: BULAN / BULAN / MM, TAHUN / YYYY / YY. |
Fungsi Matematik :
Fungsi-fungsi ini digunakan untuk Operasi Matematik. Daripada membuatUDF, kami mempunyai beberapa fungsi matematik terbina dalam Hive.
Nama Fungsi | Jenis Pulangan | Penerangan |
---|---|---|
bulat (GANDA X) | BERGANDA | Ia akan mengambil dan mengembalikan nilai BIGINT bulat X |
bulat (DOUBLE X, INT d) | BERGANDA | Ia akan mengambil dan mengembalikan X dibundarkan ke d perpuluhan |
bround (GANDA X) | BERGANDA | Ia akan mengambil dan mengembalikan nilai BIGINT bulat X menggunakan mod pembulatan HALF_EVEN |
lantai (GANDA X) | BESAR | Ia akan mengambil dan mengembalikan nilai BIGINT maksimum yang sama dengan atau kurang daripada nilai X |
siling (GANDA a), siling (GANDA a) | BESAR | Ia akan mengambil dan mengembalikan nilai BIGINT minimum yang sama dengan atau lebih besar daripada nilai X |
rand (), rand (biji INT) | BERGANDA | Ia akan mengambil dan mengembalikan nombor rawak yang diedarkan secara seragam dari 0 hingga 1 |
Fungsi Bersyarat:
Fungsi-fungsi ini digunakan untuk pemeriksaan nilai bersyarat.
Nama Fungsi | Jenis Pulangan | Penerangan |
---|---|---|
jika (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Ia akan mengambil dan memberikan nilai Benar apabila Keadaan Ujian adalah benar, memberikan nilai Palsu Atau Nol sebaliknya. |
ISNULL (X) | Boolean | Ia akan mengambil dan memberi kebenaran jika X adalah NULL dan salah sebaliknya. |
ISNOTNULL (X) | Boolean | Ia akan mengambil dan memberi kebenaran jika X bukan NULL dan palsu sebaliknya. |
Fungsi Rentetan:
Manipulasi rentetan dan operasi rentetan fungsi ini boleh dipanggil.
Nama Fungsi | Jenis Pulangan | Penerangan |
---|---|---|
terbalik (rentetan X) | tali | Ia akan memberikan rentetan terbalik dari X |
rpad (tali tali, panjang int, pad tali) | tali | Ia akan mengambil dan memberikan str, yang dilapisi kanan dengan pad hingga panjangnya panjang (nilai integer) |
rtrim (rentetan X) | tali | Ia akan mengambil dan mengembalikan rentetan yang dihasilkan dari ruang pemangkasan dari hujung (sebelah kanan) X Contohnya , rtrim ('hasil') menghasilkan 'hasil' |
ruang (INT n) | tali | Ia akan mengambil dan memberikan rentetan ruang n. |
belah (STRING str, STRING tepuk) | susunan | Berpisah di sekitar tepuk (tepuk adalah ungkapan biasa). |
Str_to_map (teks [, pembatas1, pembatas2]) | peta | Ia akan membahagikan teks menjadi pasangan nilai-kunci menggunakan dua pembatas. |
UDF (Fungsi Ditentukan Pengguna):
Di Hive, pengguna dapat menentukan fungsi sendiri untuk memenuhi keperluan pelanggan tertentu. Ini dikenali sebagai UDF di Hive. Fungsi Ditetapkan Pengguna yang ditulis di Java untuk modul tertentu.
Sebilangan UDF direka khusus untuk penggunaan semula kod dalam kerangka aplikasi. Pembangun akan mengembangkan fungsi ini di Java dan mengintegrasikan UDF tersebut dengan Hive.
Semasa pelaksanaan Query, pembangun dapat menggunakan kod secara langsung, dan UDF akan mengembalikan output mengikut tugas yang ditentukan pengguna. Ia akan memberikan prestasi tinggi dari segi pengekodan dan pelaksanaan.
Sebagai contoh, untuk string string kita tidak mempunyai fungsi yang ditentukan sebelumnya di Hive, untuk ini kita dapat menulis stem UDF di Java. Di mana sahaja kita memerlukan fungsi Stem, kita boleh memanggil Stem UDF ini secara langsung di Hive.
Di sini fungsi batang bermaksud memperoleh kata-kata dari kata akarnya. Seperti algoritma stemming mengurangkan perkataan "wishing", "wished", dan "wish" ke root root "wish." Untuk melaksanakan fungsi jenis ini, kita dapat menulis UDF dalam java dan berintegrasi dengan Hive.
Bergantung pada kes penggunaan UDF dapat ditulis, ia akan menerima dan menghasilkan bilangan input dan output yang berlainan nilai.
Jenis umum UDF akan menerima nilai input tunggal dan menghasilkan nilai output tunggal. Sekiranya UDF digunakan dalam pertanyaan, maka UDF akan dipanggil sekali untuk setiap baris dalam kumpulan data hasil.
Dengan cara lain, ia dapat menerima sekumpulan nilai sebagai input dan mengembalikan nilai output tunggal juga.