如何删除蜂巢柱?

时间:2016-11-01 12:23:17

标签: hadoop hive

我在Hive表中有两列IdName,我想要删除Name列。我使用了以下命令:

ALTER TABLE TableName REPLACE COLUMNS(id string);

结果是Name列值已分配到Id列。

如何删除表格的特定列,Hive中是否还有其他命令可以实现我的目标?

2 个答案:

答案 0 :(得分:0)

除了问题的现有答案: Alter hive table add or drop column

根据Hive documentation

  

REPLACE COLUMNS删除所有现有列并添加新的列集。

     

REPLACE COLUMNS也可用于删除列。例如,ALTER TABLE test_change REPLACE COLUMNS (a int, b int);会从c的架构中删除列test_change

答案 1 :(得分:0)

您正在使用的查询是正确的。但这只会修改模式,即Metastore。这不会修改数据方面的任何内容。

因此,在删除列之前,应确保您具有正确的数据文件。

在您的情况下,数据文件不应包含名称值。

如果您不想修改该文件,请创建另一个只包含您需要的特定列的表。

Create table tablename as select id from already_existing_table

请告诉我这是否有帮助。