使用默认值向表中添加列
Posted
技术标签:
【中文标题】使用默认值向表中添加列【英文标题】:Add Column to Table with Default Value 【发布时间】:2019-05-21 02:57:33 【问题描述】:我正在尝试向表中添加一列(最好不使用数据框),默认值为“MONTHLY”
ALTER TABLE aa_monthly ADD COLUMNS (Monthly_or_Weekly_Indicator string NOT NULL FIRST DEFAULT ('MONTHLY'))
这给了我一个错误:
SQL 语句中的错误:ParseException: mismatched input 'DEFAULT' 期待 ')'(第 1 行,第 88 位)
无论我在 sql 语句中是否有FIRST
,我都会遇到同样的错误。
我看过here 和here
【问题讨论】:
【参考方案1】:在 Hive 你 cannot add a default value for a column,很遗憾。
column change 命令只会修改 Hive 的元数据,不会修改数据
【讨论】:
【参考方案2】:希望对你有帮助
ALTER TABLE aa_monthly
ADD Monthly_or_Weekly_Indicator string NOT NULL DEFAULT 'MONTHLY'
【讨论】:
啊,我收到此错误:SQL 语句中的错误:ParseException:输入“ALTER TABLE aa_monthly ADD Monthly_or_Weekly_Indicator”(第 1 行,第 35 行)没有可行的替代方案。它在“添加”之后显示错误【参考方案3】:有多种方法
1) ALTER TABLE aa_monthly
ADD Monthly_or_Weekly_Indicator string not null
CONSTRAINT Monthly_or_Weekly_Indicator DEFAULT 'MONTHLY'
WITH VALUES
2) ALTER TABLE aa_monthly
ADD Monthly_or_Weekly_Indicator string NOT NULL DEFAULT 'MONTHLY'
【讨论】:
不幸的是,这些都不起作用。他们都在“添加”后立即挂断。我得到同样的错误: com.databricks.backend.common.rpc.DatabricksExceptions$SQLExecutionException: org.apache.spark.sql.catalyst.parser.ParseException: 在输入'ALTER TABLE aa_monthly \n ADD Monthly_or_Weekly_Indicator'(line 2,位置 8) 你是直接点击这个查询还是通过任何程序?? 直接。我在数据块中使用 sql以上是关于使用默认值向表中添加列的主要内容,如果未能解决你的问题,请参考以下文章