Есть ли способ изменить тип столбца в таблице hive?

Текущая схема:

hive> describe tableA;
OK
id      int
ts      timestamp

Я хочу изменить столбец ts, чтобы быть BIGINT, не отбрасывая таблицу и снова воссоздавая. Возможно ли это?

Ответы

Ответ 1

Найдено решение:

ALTER TABLE tableA CHANGE ts ts BIGINT AFTER id;

Ответ 2

ALTER TABLE table_name CHANGE col_name col_name newType

Ответ 3

Простое изменение/изменение таблицы 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