ไฮฟ์ - ฟังก์ชั่นในตัว
บทนี้อธิบายถึงฟังก์ชันในตัวที่มีอยู่ใน 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) | ส่งคืนค่าสูงสุดของคอลัมน์ในกลุ่ม |