2016-11-01 48 views
0

我在Hive表中有兩列IdName,我想刪除Name列。我已經使用下面的命令:如何刪除配置單元列?

ALTER TABLE TableName REPLACE COLUMNS(id string); 

其結果是,該Name列值被分配到Id柱。

如何刪除表中的特定列,並在Hive中是否有其他命令來實現我的目標?

+2

[同問](http://stackoverflow.com/questions/34198114/alter-hive-table-add-or-drop-column) 你可以從這裏得到幫助問答 –

回答

0

除了現有問題的答案: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

0

您正在使用的查詢是正確的。但是,這隻會修改模式,即Metastore。這不會修改數據端的任何內容。

因此,在刪除列之前,您應該確保您擁有正確的數據文件。

在你的情況下,數據文件不應該包含名稱值。

如果您不想修改該文件,請創建另一個只包含特定列的表格。

Create table tablename as select id from already_existing_table 

讓我知道這是否有幫助。