我想向表中添加一个新列,但前提是该列不存在。
如果列不存在,则此操作有效:
ALTER TABLE MyTable ADD COLUMNS (mycolumn string);
但是当我第二次执行它时,我得到了一个错误。
Column 'mycolumn' exists
当我尝试使用create table和add partition支持的“if not exists”语法时,出现了一个语法错误:
ALTER TABLE MyTable ADD IF NOT EXISTS COLUMNS (mycolumn string);
FAILED: ParseException line 3:42 required (...)+ loop did not match anything at input 'COLUMNS' in add partition statement
我需要的是可以逐项执行的东西,这样我就可以运行我的查询,不管这个列是否存在。
2条答案
按热度按时间2wnc66cl1#
通过设置
hive.cli.errors.ignore
旗帜。在这种情况下,hivecli将强制执行进一步的查询,即使查询失败。在本例中:
配置单元将执行所有查询,即使第二个查询中有错误。
jfewjypa2#
没有直接的方法。我是说通过一个查询。还有两种方法:
1.)使用jdbc:
2.)使用配置单元元存储客户端:
希望对你有帮助。。。!!!