Es ist in der Regel einfach die exesting Tabelle verwendet diese Syntax in Hive zu ändern/modifizieren.
ALTER TABLE table_name CHANGE old_col_name new_col_name new_data_type
Hier können Sie den Spaltennamen und den Datentyp gleichzeitig ändern. Wenn Sie col_name nicht ändern wollen, machen Sie einfach alt_col_name und new_col_name gleich. OK.
Komm zu deinem Problem. Wenn Sie die ts-Spalte zu BIGINT ändern möchten, bedeutet dies, dass Sie den Spaltentyp ändern. Führen Sie diese Abfrage einfach aus.
ALTER TABLE tableA CHANGE ts ts BIGINT;
Hier ts und ts sind gleich, bedeutet, dass Sie Spaltennamen nicht ändern, aber Säulentyp zu ändern; Wenn Sie den Spaltennamen ändern möchten, führen Sie ihn einfach aus.
ALTER TABLE tableA CHANGE ts new_col BIGINT;
Jetzt laufen
hive> describe tableA;
OK
id int
new_col bigint
Zusätzlich, wenn Sie Partitionen verwenden, müssen Sie 'alter table {table_name} Partition Spalte ({column_name} {column_type})'. Hive kann so viele Inkonsistenzen verursachen. Vielleicht ist es mir aber Hive ist sehr frustrierend :-( –
Interessant wäre, wenn dies auch mit einer ORC-Datei möglich wäre –