2017-01-27 56 views
0

我試圖創建一個路由到S3存儲桶的外部表。我想按日期對所有表格進行分組,所以路徑類似於s3://<bucketname>/<date>/<table-name>。我創建它當前的功能看起來像HiveQL中的字符串插值

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 

有沒有辦法做到串插或在這方面的蜂巢一個函數調用?

回答

0

你可以嘗試這樣的事情。 retrieve udf results in Hive。本質上,作爲解決方法,您可以創建一個腳本並從終端通過參數(如配置單元配置)調用它。