以 CURRENT_TIMESTAMP 作为列默认值的 HQL 表
我正在尝试在 Hadoop 中创建一个表,但使用 current_timestamp() 作为列的默认值:
CREATE TABLE table_test(
CODE_FIRST VARCHAR(3),
TYPE_TEST_1 VARCHAR(4),
TYPE_TEST_2 VARCHAR(4),
FLAG_BOOL VARCHAR(1),
CONTACT VARCHAR(15),
DATE_MODIFIED TIMESTAMP DEFAULT CURRENT_TIMESTAMP()
) STORED AS parquet TBLPROPERTIES("parquet.compress"="GZIP");
我尝试将其更改为 AS CURRENT_TIMESTAMP
和许多其他格式,但我无法创建表。有人可以解释一下我做错了什么吗?
Hive 版本 2.1.1-mapr-1901
错误:
Error while compiling statement:
FAILED: ParseException line 50:25 mismatched input 'DEFAULT' expecting ) near 'TIMESTAMP' in create table statement
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Hive DDL 中的
DEFAULT
约束在 3.0 版本中实现,请参阅 JIRA HIVE-18726。但即使在该版本中,您也只能定义对 MANAGED 表的约束,并且 MANAGED 表不支持 Parquet 格式。
根据 EXTERNAL 表(可以使用 Parquet 文件),仅支持
RELY
约束/display/Hive/Managed+vs.+External+Tables" rel="nofollow noreferrer">Hive 手册。DEFAULT
constraint in Hive DDL was implemented in version 3.0, see JIRA HIVE-18726.But even in that version, you can only define the constraints on MANAGED tables, and MANAGED tables do not support Parquet format.
For EXTERNAL tables (that can work with Parquet files), only
RELY
constraint is supported, according to Hive manual.