我正在尝试创建一个指向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:解析错误:第3行:第9行不匹配输入'concat'期望表位置规范中'LOCATION'附近的StringLiteral
有没有办法动态指定表位置?
答案 0 :(得分:7)
好的,我找到了hive变量功能。 所以我按照以下方式传递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}';
答案 1 :(得分:-1)
此功能在我身边不起作用, 你是怎么做到的?
hive -d s3file=s3://BlobStore/Exports/APKsCollection_test/`date +%F`/