Вот еще одно решение для получения записей только с полем, которое имеет максимальное значение для этого поля. Это работает для SQL400, на котором я работаю. В этом примере записи с максимальным значением в поле FIELD5 будут получены следующим оператором SQL.
SELECT A.KEYFIELD1, A.KEYFIELD2, A.FIELD3, A.FIELD4, A.FIELD5
FROM MYFILE A
WHERE RRN(A) IN
(SELECT RRN(B)
FROM MYFILE B
WHERE B.KEYFIELD1 = A.KEYFIELD1 AND B.KEYFIELD2 = A.KEYFIELD2
ORDER BY B.FIELD5 DESC
FETCH FIRST ROW ONLY)
Немного копания показало, что у JiveA улья есть команда точно для обновления типа данных столбца раздела ( https://issues.apache.org/jira/browse/HIVE-3672 )
alter table {table_name} partition column ({column_name} {column_type});
Согласно JIRA, команда была реализована, но очевидно, что она никогда не документировалась в Hive Wiki.
Я использовал ее в своей системе Hive 0.14, и она работала как ожидалось.
Я думаю, что yo должно переопределить схему таблицы и переопределить, что ваше значение раздела больше не будет целым, и теперь это будет тип строки.
Я рекомендую вам:
Вышеупомянутые шаги, физически (папки структуры), не будут иметь никакого отношения к структуре, которую вы уже имели. Разница будет в метафоре «Улья», особенно в «виртуальном столбце», создаваемом при создании разделов.
Кроме того, теперь вместо этого делать запросы наподобие: part_col = 1, теперь вы сможете сделать запросы вроде: part_col = '1'.
Попробуйте это и расскажите мне, как это происходит.