3

我正在尝试创建一个指向 S3 输出文件的 Hive 外部表。
文件名应反映当前日期(始终是新文件)。

我试过这个:

CREATE EXTERNAL TABLE s3_export (...)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION concat('s3://BlobStore/Exports/Daily_', from_unixtime(unix_STRING(),'yyyy-MM-dd'));

但我收到一个错误:
FAILED: Parse Error: line 3:9 mismatched input 'concat' expecting StringLiteral near 'LOCATION' in table location specification

有没有办法动态指定表位置?

4

2 回答 2

7

好的,我找到了配置单元变量功能。所以我在cli中传递位置如下

hive -d s3file=s3://BlobStore/Exports/APKsCollection_test/`date +%F`/

然后在 hive 命令中使用变量

CREATE EXTERNAL TABLE s3_export (...)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '${s3File}';
于 2013-07-09T09:03:11.580 回答
-1

这个功能在我这边不起作用,你是怎么做到的?

hive -d s3file=s3://BlobStore/Exports/APKsCollection_test/`date +%F`/
于 2013-11-26T10:46:34.930 回答