gpt4 book ai didi

hadoop - 在 Hive 中,如何仅在该列不存在时才添加该列?

转载 作者:可可西里 更新时间:2023-11-01 14:15:10 25 4
gpt4 key购买 nike

我想向表中添加一个新列,但前提是该列尚不存在。

如果该列不存在,这将起作用:

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

我需要的是可以自动执行的东西,这样无论该列是否存在我都可以运行我的查询。

最佳答案

您可以通过设置 hive.cli.errors.ignore 标志来部分解决它。在这种情况下,即使查询失败,Hive CLI 也会强制执行进一步的查询。

在这个例子中:

SET hive.cli.errors.ignore=true;
ALTER TABLE MyTable ADD COLUMNS (mycolumn string);
ALTER TABLE MyTable ADD COLUMNS (mycolumn string);
ALTER TABLE MyTable ADD COLUMNS (mycolumn2 string);

hive 将执行所有查询,即使第二个查询会出错。

关于hadoop - 在 Hive 中,如何仅在该列不存在时才添加该列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25293019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com