Acho que encontrei. Eu olhei para o código-fonte e aparentemente
UDFHour.java
tem dois evaluate()
funções. Um que aceita um Text
objeto como parâmetro e um que usa um TimeStampWritable
objeto como parâmetro. Ambos funcionam com um Calendar
instância, mas por algum motivo a primeira função retorna o valor de Calendar.HOUR_OF_DAY
e o segundo Calendar.HOUR
. Procurei na documentação do Hives, mas não consegui encontrar nada sobre essa segunda função, mas está lá. Estou usando o Hive 0.9.0.16, que veio com o HDP da Hortonworks.
Editar: Já relatei isso há algum tempo. Um patch já está disponível:https://issues.apache.org/jira/browse /HIVE-3850 .