alter table(hive)中的动态数据

r1zhe5dt  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(509)

我的查询出错,我不太清楚原因:

ALTER TABLE revenue ADD PARTITION (ds=from_unixtime(unix_timestamp(), 'yyyy-MM-dd')) LOCATION CONCAT('s3://userenroll-analytics/prod/revenue/avro/', from_unixtime(unix_timestamp(), 'yyyy/MM/dd'))

错误:

Error while compiling statement: FAILED: ParseException line 1:38 cannot recognize input near 'from_unixtime' '(' 'unix_timestamp' in constant

有没有办法在配置单元alter表查询中使用动态生成的值?
(附言-对于那些说我应该使用动态分区的人。。。我不想使用配置单元强制使用的目录结构语法。)

stszievb

stszievb1#

当您对所有分区字段使用动态分区时,您需要确保对动态分区模式(hive.exec.dynamic.partition.mode)使用nonstrict
在查询之前使用下面的命令。
设置hive.exec.dynamic.partition.mode=nonstrict;

epggiuax

epggiuax2#

在alter table语句之前运行以下语句。

MSCK REPAIR TABLE revenue;

此语句将向配置单元目录添加有关分区的元数据。

相关问题