Tôi nghĩ rằng tôi đã tìm thấy nó. Tôi đã xem mã nguồn và có vẻ như UDFHour.java có hai evaluate() chức năng. Một trong đó chấp nhận một Text đối tượng dưới dạng tham số và một đối tượng sử dụng TimeStampWritable đối tượng dưới dạng tham số. Cả hai đều hoạt động với Calendar nhưng vì lý do nào đó, hàm đầu tiên trả về giá trị của Calendar.HOUR_OF_DAY và cái thứ hai Calendar.HOUR .
Tôi đã tìm trong tài liệu Hives nhưng không tìm thấy gì về chức năng thứ hai đó, nhưng nó ở đó. Tôi đang sử dụng Hive 0.9.0.16, đi kèm với HDP của Hortonworks.
Chỉnh sửa: Tôi đã báo cáo điều này một thời gian trở lại. Hiện đã có bản vá: https://issues.apache.org/jira/browse / HIVE-3850 .