可以从另一个配置单元脚本运行配置单元脚本吗?

Posted

技术标签:

【中文标题】可以从另一个配置单元脚本运行配置单元脚本吗?【英文标题】:Can a hive script be run from another hive script? 【发布时间】:2018-03-28 13:27:56 【问题描述】:

我创建了两个配置单元脚本 script1.hql 和 script2.hql。

是否可以从 script1.hql 运行脚本 script2.hql?

我阅读了有关使用 source 命令的信息,但无法了解它的使用。 任何指针/参考文档将不胜感激..

【问题讨论】:

【参考方案1】:

使用source <filepath> 命令:

source /tmp/script2.hql; --inside script1

文档在这里:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli

Hive 将包含 /tmp/script2.hql 的文本并在相同的上下文中执行它,因此为主脚本定义的所有变量都可以通过 script2 命令访问。

source 命令查找本地路径(不是 HDFS)。执行前将文件复制到本地目录。

【讨论】:

非常感谢。传递给 script1.hql 的 hivevar 是否会自动提供给 script2.hql? @Djeah 传递给 script1.hql 的 hivevars 将自动对 script2.hql 可用。【参考方案2】:

用命令试试看能不能执行

hive -f /home/user/sample.sql

【讨论】:

我认为您误解了这个问题。这会执行一个脚本,而不是两个

以上是关于可以从另一个配置单元脚本运行配置单元脚本吗?的主要内容,如果未能解决你的问题,请参考以下文章

从配置单元执行 R 脚本

更新配置单元表时出现问题

如何将配置从配置单元脚本传递到 UDF

无法将参数传递给配置单元脚本

从另一个配置单元表刷新一个配置单元表

如何创建向所有用户 HKCU\... 配置单元(包括默认用户和域用户)写入 32 位和 64 位的 VBS 脚本