hive 脚本 (hivequery.hql) 文件中的这个符号是什么意思 "use ${word:word}"

what does this notation in hive script(hivequery.hql) file mean "use ${word:word}"

脚本 (hivequery.hql:) 如下所示:

Use ${platformType:platformName};

select * from hivetablename;

并且此脚本在 bash 脚本中被调用为

#!/usr/bin/env bash
hive -f hivequery.hql

编写结构 ${word:word} 更正确的方法是编写 ${parameter:offset} 。它导致参数扩展,它扩展到 parameter 的值的部分,该部分从扩展 offset 到 parameter 的末尾确定的字符开始(从 0 开始计算)。它还有一个变体 ${parameter:offset:length } - 扩展到参数值的一部分,该部分从字符开始(从 0 开始计数),该部分通过将 offset 扩展为算术表达式而确定,并由算术表达式确定的字符数组成由长度定义。

所以我认为在您的情况下,基本上是从 platformType 获取数据库的名称。

有关此内容的更多详细信息,请查看 在 bash 手册页中查找 Parameter Expansion

在 hql 文件中,use 命令设置默认数据库。参见 Use Database

${platformType:platformName}是Hive的变量表示法,其中platformType是命名空间,platformName是变量名。这在语言手册的 Using Variables 部分进行了解释。

如果您想查看特定变量的值,您可以使用 set,例如:

set platformType:platformName;

它会打印出这个值。您还可以 运行 set; 获取所有命名空间中已知变量的完整列表。