Linux 管道ENVSUBT输出到配置单元
使用配置单元0.13.0时,我希望根据模板计算变量,然后立即执行生成的配置单元代码(最好避免使用临时中间文件) 以下是我想做的(非工作)示例: template.hqlLinux 管道ENVSUBT输出到配置单元,linux,bash,hive,Linux,Bash,Hive,使用配置单元0.13.0时,我希望根据模板计算变量,然后立即执行生成的配置单元代码(最好避免使用临时中间文件) 以下是我想做的(非工作)示例: template.hql SELECT COUNT(*) FROM ${TABLE}; 在外壳中: export TABLE=DEFAULT.FOOTABLE envsubst < template.hql | hive export TABLE=DEFAULT.FOOTABLE envsubst
SELECT COUNT(*) FROM ${TABLE};
在外壳中:
export TABLE=DEFAULT.FOOTABLE
envsubst < template.hql | hive
export TABLE=DEFAULT.FOOTABLE
envsubst
是否有特殊原因导致此项不起作用,以及是否有适当的方法实现此项功能?替换工作如预期:
$ cat template.hql
SELECT COUNT(*) FROM ${TABLE};
$ export TABLE=DEFAULT.FOOTABLE
$ envsubst < template.hql
SELECT COUNT(*) FROM DEFAULT.FOOTABLE;
如果您使用的是新版本的bash,则可以避免使用中间文件:
hive -f <( envsubst < template.hql )
hive-f可能是因为您的模板有$TABLE
,而您的环境变量是$TABLES
(复数)?@bishop,不,对不起,这只是玩具示例中的一个输入错误
hive -f <( envsubst < template.hql )