我想删除配置单元中的一个分区,它的值在另一个表中或由一个函数动态创建。例如:
ALTER TABLE
table_1
DROP IF EXISTS
PARTITION (dt = FROM_UNIXTIME(UNIX_TIMESTAMP(DATE_SUB(CURRENT_DATE, 63),'yyyy-MM-dd'), 'yyyyMMdd'))
或者类似的:
ALTER TABLE
table_1
DROP IF EXISTS
PARTITION (dt = SELECT date FROM table_2 LIMIT 1))
但是,这将返回以下错误:
cannot recognize input near 'FROM_UNIXTIME' '(' 'UNIX_TIMESTAMP' in constant
如果我把整个电话换成 FROM_UNIXTIME()
有了固定的数字,它就可以正常工作了。有没有一种方法可以在不硬编码分区值的情况下实现这一点?
1条答案
按热度按时间ckocjqey1#
在hivecli不支持的情况下,我们需要使用shell脚本
示例脚本:
有关更多详细信息,请参阅此链接和有关配置单元变量的链接。