ไฮฟ์ - ฟังก์ชั่นในตัว
บทนี้อธิบายถึงฟังก์ชันในตัวที่มีอยู่ใน Hive ฟังก์ชันมีลักษณะคล้ายกับฟังก์ชัน SQL ยกเว้นการใช้งาน
ฟังก์ชั่นในตัว
Hive รองรับฟังก์ชันในตัวดังต่อไปนี้:
ประเภทผลตอบแทน | ลายเซ็น | คำอธิบาย |
---|---|---|
ใหญ่ | รอบ (คู่ a) | จะส่งกลับค่า BIGINT ที่ปัดเศษของ double |
ใหญ่ | ชั้น (double a) | ส่งกลับค่า BIGINT สูงสุดที่เท่ากับหรือน้อยกว่าคู่ |
ใหญ่ | เพดาน (double a) | จะส่งคืนค่า BIGINT ขั้นต่ำที่เท่ากับหรือมากกว่าสองเท่า |
สองเท่า | แรนด์ (), แรนด์ (เมล็ดพันธุ์ int) | ส่งคืนตัวเลขสุ่มที่เปลี่ยนจากแถวหนึ่งไปอีกแถว |
สตริง | concat (สตริง A, สตริง B, ... ) | ส่งคืนสตริงที่เกิดจากการต่อ B หลัง A |
สตริง | substr (สตริง A เริ่มต้น int) | ส่งคืนสตริงย่อยของ A โดยเริ่มจากตำแหน่งเริ่มต้นจนถึงจุดสิ้นสุดของสตริง A |
สตริง | substr (สตริง A, เริ่มต้น int, ความยาว int) | ส่งคืนสตริงย่อยของ A โดยเริ่มจากตำแหน่งเริ่มต้นด้วยความยาวที่กำหนด |
สตริง | บน (สตริง A) | ส่งคืนสตริงที่เกิดจากการแปลงอักขระทั้งหมดของ A เป็นตัวพิมพ์ใหญ่ |
สตริง | ucase (สตริง A) | เช่นเดียวกับด้านบน |
สตริง | ต่ำกว่า (สตริง A) | ส่งคืนสตริงที่เกิดจากการแปลงอักขระทั้งหมดของ B เป็นตัวพิมพ์เล็ก |
สตริง | lcase (สตริง A) | เช่นเดียวกับด้านบน |
สตริง | ตัดแต่ง (สตริง A) | ส่งคืนสตริงที่เกิดจากการตัดแต่งช่องว่างจากปลายทั้งสองของ A |
สตริง | ltrim (สตริง A) | ส่งคืนสตริงที่เกิดจากการตัดแต่งช่องว่างจากจุดเริ่มต้น (ด้านซ้ายมือ) ของ A |
สตริง | rtrim (สตริง A) | rtrim (สตริง A) ส่งคืนสตริงที่เป็นผลมาจากการตัดแต่งช่องว่างจากปลาย (ด้านขวามือ) ของ A |
สตริง | regexp_replace (สตริง A, สตริง B, สตริง C) | ส่งคืนสตริงที่เกิดจากการแทนที่สตริงย่อยทั้งหมดใน B ที่ตรงกับไวยากรณ์นิพจน์ทั่วไปของ Java ด้วย C |
int | ขนาด (แผนที่ <KV>) | จะส่งคืนจำนวนองค์ประกอบในประเภทแผนที่ |
int | ขนาด (อาร์เรย์ <T>) | ส่งคืนจำนวนองค์ประกอบในประเภทอาร์เรย์ |
ค่าของ <type> | ส่ง (<expr> เป็น <type>) | มันจะแปลงผลลัพธ์ของนิพจน์ expr เป็น <type> เช่น cast ('1' เป็น BIGINT) แปลงสตริง '1' เป็นการแสดงอินทิกรัล ค่า NULL จะถูกส่งกลับหากการแปลงไม่สำเร็จ |
สตริง | from_unixtime (int unixtime) | แปลงจำนวนวินาทีจาก Unix epoch (1970-01-01 00:00:00 UTC) เป็นสตริงที่แสดงการประทับเวลาของช่วงเวลานั้นในเขตเวลาของระบบปัจจุบันในรูปแบบ "1970-01-01 00:00: 00 " |
สตริง | to_date (การประทับเวลาสตริง) | ส่งคืนส่วนวันที่ของสตริงการประทับเวลา: to_date ("1970-01-01 00:00:00") = "1970-01-01" |
int | ปี (วันที่สตริง) | ส่งคืนส่วนปีของวันที่หรือสตริงการประทับเวลา: year ("1970-01-01 00:00:00") = 1970, year ("1970-01-01") = 1970 |
int | เดือน (วันที่สตริง) | ส่งคืนส่วนเดือนของวันที่หรือสตริงการประทับเวลา: month ("1970-11-01 00:00:00") = 11, month ("1970-11-01") = 11 |
int | วัน (วันที่สตริง) | ส่งคืนส่วนวันของวันที่หรือสตริงการประทับเวลา: วัน ("1970-11-01 00:00:00") = 1, วัน ("1970-11-01") = 1 |
สตริง | get_json_object (สตริง json_string เส้นทางสตริง) | มันแยกวัตถุ json จากสตริง json ตามเส้นทาง json ที่ระบุและส่งคืนสตริง json ของวัตถุ json ที่แยกออกมา จะคืนค่า NULL หากสตริง json อินพุตไม่ถูกต้อง |
ตัวอย่าง
แบบสอบถามต่อไปนี้แสดงให้เห็นถึงฟังก์ชันในตัวบางอย่าง:
ฟังก์ชัน round ()
hive> SELECT round(2.6) from temp;
เมื่อดำเนินการค้นหาสำเร็จคุณจะเห็นคำตอบต่อไปนี้:
3.0
ชั้น () ฟังก์ชั่น
hive> SELECT floor(2.6) from temp;
เมื่อดำเนินการค้นหาสำเร็จคุณจะเห็นคำตอบต่อไปนี้:
2.0
ฟังก์ชัน ceil ()
hive> SELECT ceil(2.6) from temp;
เมื่อดำเนินการค้นหาสำเร็จคุณจะเห็นคำตอบต่อไปนี้:
3.0
ฟังก์ชันรวม
Hive รองรับสิ่งต่อไปนี้ในตัว aggregate functions. การใช้ฟังก์ชันเหล่านี้เหมือนกับฟังก์ชันการรวม SQL
ประเภทผลตอบแทน | ลายเซ็น | คำอธิบาย |
---|---|---|
ใหญ่ | นับ (*) นับ (expr) | count (*) - ส่งคืนจำนวนแถวที่เรียกทั้งหมด |
สองเท่า | ผลรวม (col) ผลรวม (DISTINCT col) | ส่งคืนผลรวมขององค์ประกอบในกลุ่มหรือผลรวมของค่าที่แตกต่างกันของคอลัมน์ในกลุ่ม |
สองเท่า | ค่าเฉลี่ย (col), เฉลี่ย (DISTINCT col) | ส่งคืนค่าเฉลี่ยขององค์ประกอบในกลุ่มหรือค่าเฉลี่ยของค่าที่แตกต่างกันของคอลัมน์ในกลุ่ม |
สองเท่า | นาที (col) | ส่งคืนค่าต่ำสุดของคอลัมน์ในกลุ่ม |
สองเท่า | สูงสุด (col) | ส่งคืนค่าสูงสุดของคอลัมน์ในกลุ่ม |