gpt4 book ai didi

linux - 管道 envsubst 输出到配置单元

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:40 24 4
gpt4 key购买 nike

使用 Hive 0.13.0,我想根据模板评估变量,然后立即执行生成的 Hive 代码(最好避免使用临时中间文件)。

这是我想做的(非工作)示例:

模板.hql

SELECT COUNT(*) FROM ${TABLE};

在外壳中:

export TABLE=DEFAULT.FOOTABLE
envsubst < template.hql | hive

这行不通有什么特别的原因吗?有没有合适的方法来实现?

最佳答案

替换按预期工作:

$ cat template.hql
SELECT COUNT(*) FROM ${TABLE};
$ export TABLE=DEFAULT.FOOTABLE
$ envsubst < template.hql
SELECT COUNT(*) FROM DEFAULT.FOOTABLE;

所以我怀疑 hive 没有从标准中读取查询。我从 an online manual 看到它支持 -f 参数,因此您可以手动创建文件:

TMPFILE=$(mktemp)
envsubst < template.hql > $TMPFILE
hive -f $TMPFILE
rm $TMPFILE

如果您使用的是新版本的 bash,则可以避免使用中间文件:

hive -f <( envsubst < template.hql )

我不确定,但还要检查 hive -f - 是否可以从标准输入读取。

关于linux - 管道 envsubst 输出到配置单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38232615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com