Fungsi Hive: Built-in & UDF (Fungsi Ditentukan Pengguna)

Isi kandungan:

Anonim

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.