使用参数化位置创建 table

Create table with parameterized location

这是针对 Hive 1.1.0 和 Cloudera 5.4.8。

我已经尝试了 here 建议的解决方案,但它似乎对我不起作用。我已经通过 "hive -e" 和脚本文件尝试了类似以下内容:

set rootpath = 'hdfs:///user/myuser/data'; 
DROP TABLE mytable; 
CREATE [EXTERNAL] TABLE mytable (
     Dim1 STRING,
     Dim2 STRING,
     Dim3 STRING ) 
 LOCATION ${hiveconf:rootpath};

我刚得到错误:

FAILED: ParseException line 1:126 mismatched input '<EOF>' expecting     StringLiteral near 'LOCATION' in table location specification

有什么办法可以解决这个问题吗?

您的脚本需要一些小改动

set hiveconf:rootpath='hdfs:///user/myuser/data'; 
DROP TABLE mytable; 
CREATE [EXTERNAL] TABLE mytable (
     Dim1 STRING,
     Dim2 STRING,
     Dim3 STRING ) 
 LOCATION '${hiveconf:rootpath}';