hiveql中的字符串插值

zte4gxcn  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(487)

我试图创建一个路由到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

在这种情况下,有没有办法在配置单元中进行字符串插值或函数调用?

bxgwgixi

bxgwgixi1#

你可以试试这样的。在配置单元中检索udf结果。实际上,作为解决方法,您可以创建一个脚本并从终端调用它,就像配置单元配置一样传递参数。

相关问题