ไฮฟ์ - ฟังก์ชั่นในตัว

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