我试图创建一个路由到s3 bucket的外部表。我想按日期对所有表进行分组,因此路径类似于 s3://<bucketname>/<date>/<table-name>
. 我当前创建它的函数
concat('s3://<bucket-name>/', date_format(current_date,'yyyy-MM-dd'), '/<table-name>/');
我可以在一个 SELECT
查询罚款;但是,当我尝试将其放入表创建语句时,出现以下错误:
set s3-path = concat('s3://<bucket-name>/', date_format(current_date,'yyyy-MM-dd'), '/<table-name>/');
CREATE EXTERNAL TABLE users
(id STRING,
name STRING)
STORED AS PARQUET
LOCATION ${hiveconf:s3-path};
> FAILED: ParseException line 7:9 mismatched input 'concat' expecting StringLiteral near 'LOCATION' in table location specification
在这种情况下,有没有办法在配置单元中进行字符串插值或函数调用?
1条答案
按热度按时间bxgwgixi1#
你可以试试这样的。在配置单元中检索udf结果。实际上,作为解决方法,您可以创建一个脚本并从终端调用它,就像配置单元配置一样传递参数。