我在Hive表中有兩列Id
和Name
,我想刪除Name
列。我已經使用下面的命令:如何刪除配置單元列?
ALTER TABLE TableName REPLACE COLUMNS(id string);
其結果是,該Name
列值被分配到Id
柱。
如何刪除表中的特定列,並在Hive中是否有其他命令來實現我的目標?
我在Hive表中有兩列Id
和Name
,我想刪除Name
列。我已經使用下面的命令:如何刪除配置單元列?
ALTER TABLE TableName REPLACE COLUMNS(id string);
其結果是,該Name
列值被分配到Id
柱。
如何刪除表中的特定列,並在Hive中是否有其他命令來實現我的目標?
除了現有問題的答案:Alter hive table add or drop column
按照蜂巢documentation,
REPLACE COLUMNS
刪除所有現有列,並增加了新的一組列。
REPLACE COLUMNS
也可用於刪除列。例如,ALTER TABLE test_change REPLACE COLUMNS (a int, b int);
將從test_change
的模式中刪除列c
。
您正在使用的查詢是正確的。但是,這隻會修改模式,即Metastore。這不會修改數據端的任何內容。
因此,在刪除列之前,您應該確保您擁有正確的數據文件。
在你的情況下,數據文件不應該包含名稱值。
如果您不想修改該文件,請創建另一個只包含特定列的表格。
Create table tablename as select id from already_existing_table
讓我知道這是否有幫助。
[同問](http://stackoverflow.com/questions/34198114/alter-hive-table-add-or-drop-column) 你可以從這裏得到幫助問答 –