Ответ 1
Найдено решение:
ALTER TABLE tableA CHANGE ts ts BIGINT AFTER id;
Текущая схема:
hive> describe tableA;
OK
id int
ts timestamp
Я хочу изменить столбец ts
, чтобы быть BIGINT
, не отбрасывая таблицу и снова воссоздавая. Возможно ли это?
Найдено решение:
ALTER TABLE tableA CHANGE ts ts BIGINT AFTER id;
ALTER TABLE table_name CHANGE col_name col_name newType
Простое изменение/изменение таблицы exesting обычно используют этот синтаксис в Hive.
ALTER TABLE table_name CHANGE old_col_name new_col_name new_data_type
Здесь вы можете изменить имя столбца и тип данных одновременно. Если вы не хотите менять col_name, просто старое имя_столбы и new_col_name одинаковы. ОК.
Приходите к вашей проблеме. Если вы хотите изменить столбец ts на BIGINT.It означает тип столбца, который вы меняете. поэтому просто запустите этот запрос.
ALTER TABLE tableA CHANGE ts ts BIGINT;
Здесь ts и ts одинаковы, означает, что вы не изменяете имя столбца, а изменяете тип столбца; если вы хотите изменить имя столбца, просто запустите его.
ALTER TABLE tableA CHANGE ts new_col BIGINT;
Теперь запустите
hive> describe tableA; OK id int new_col bigint