Fungsi Sarang: Bawaan & UDF (Fungsi Buatan Pengguna)

Daftar Isi:

Anonim

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.