webentwicklung-frage-antwort-db.com.de

Hive Alter table change Spaltenname

Ich versuche, einen columnName in der Struktur umzubenennen. Gibt es eine Möglichkeit, den Spaltennamen in Hive umzubenennen?.

tableA (column1, _c1, _c2) bis tableA (column1, column2, column3) ??

22
user2978621

Spaltenname/Typ/Position/Kommentar ändern :

ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]

Beispiel:

CREATE TABLE test_change (a int, b int, c int);

// will change column a's name to a1
ALTER TABLE test_change CHANGE a a1 INT;
68
Remus Rusanu

Der Befehl funktioniert nur, wenn der Befehl "use" zum ersten Mal verwendet wurde, um die Datenbank zu definieren, in der gearbeitet wird. Die Syntax zum Umbenennen von Tabellenspalten mit DATABASE.TABLE löst einen Fehler aus und funktioniert nicht. Version: Hive 0.12.

BEISPIEL:

Hive> ALTER TABLE databasename.tablename CHANGE old_column_name new_column_name;

  MismatchedTokenException(49!=90)
        at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.Java:617)
        at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.Java:115)
        at org.Apache.hadoop.Hive.ql.parse.HiveParser.alterStatementSuffixExchangePartition(HiveParser.Java:11492)
        ...

Hive> use databasename;

Hive> ALTER TABLE tablename CHANGE old_column_name new_column_name;

OK
6
user11788
alter table table_name change old_col_name new_col_name new_col_type;

Hier ist das Beispiel

Hive> alter table test change userVisit userVisit2 STRING;      
    OK
    Time taken: 0.26 seconds
    Hive> describe test;                                      
    OK
    uservisit2              string                                      
    category                string                                      
    uuid                    string                                      
    Time taken: 0.213 seconds, Fetched: 3 row(s)
1
minhas23