Creo que lo encontré. Miré el código fuente y aparentemente UDFHour.java
tiene dos evaluate()
funciones Uno que acepta un Text
objeto como parámetro y uno que usa un TimeStampWritable
objeto como parámetro. Ambos funcionan con un Calendar
pero por alguna razón la primera función devuelve el valor de Calendar.HOUR_OF_DAY
y el segundo Calendar.HOUR
.
Busqué en la documentación de Hives pero no pude encontrar nada sobre esa segunda función, pero está ahí. Estoy usando Hive 0.9.0.16, que venía con el HDP de Hortonworks.
Editar: He informado de esto hace un tiempo. Ya está disponible un parche:https://issues.apache.org/jira/browse /HIVE-3850 .