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 .