hadoop CURRENT_TIMESTAMP作为列默认值的HQL表

mctunoxg  于 2022-11-01  发布在  Hadoop
关注(0)|答案(1)|浏览(229)

我尝试在Hadoop中创建一个表,但使用current_timestamp()作为列的默认值:

  1. CREATE TABLE table_test(
  2. CODE_FIRST VARCHAR(3),
  3. TYPE_TEST_1 VARCHAR(4),
  4. TYPE_TEST_2 VARCHAR(4),
  5. FLAG_BOOL VARCHAR(1),
  6. CONTACT VARCHAR(15),
  7. DATE_MODIFIED TIMESTAMP DEFAULT CURRENT_TIMESTAMP()
  8. ) STORED AS parquet TBLPROPERTIES("parquet.compress"="GZIP");

我试过将它更改为AS CURRENT_TIMESTAMP和许多其他格式,但我无法创建该表。有人能解释一下我做错了什么吗?
配置单元版本2.1.1-mapr-1901
错误:

  1. Error while compiling statement:
  2. FAILED: ParseException line 50:25 mismatched input 'DEFAULT' expecting ) near 'TIMESTAMP' in create table statement
htzpubme

htzpubme1#

配置单元DDL中的DEFAULT约束已在版本3.0中实现,请参阅JIRA HIVE-18726
Ashutosh Chauhan添加了一条评论- 22/May/18 23:16
此jira已在Hive 3.0中解决并发布。如果您发现此jira有问题,请创建新的jira。
但即使在该版本中,您也只能在 MANAGED 表上定义约束,而 MANAGED 表不支持Parquet格式。
对于 EXTERNAL 表格(可用于Parquet文件),根据Hive manual,仅支持RELY约束。

相关问题