脚本(hivequery.hql:)如下所示:
Use ${platformType:platformName}; select * from hivetablename;
这个脚本在bash脚本中被称为
# !/usr/bin/env bash hive -f hivequery.hql
8yparm6h1#
在hql文件中 use 命令设置默认数据库。请参见使用数据库。这个 ${platformType:platformName} Hive的变量符号在哪里 platformType 是命名空间和 platformName 是变量名。语言手册的“使用变量”部分对此进行了解释。如果你想知道一个特定变量的值,你可以使用 set 比如:
use
${platformType:platformName}
platformType
platformName
set
set platformType:platformName;
它会打印出值。你也可以跑步 set; 获取所有名称空间中已知变量的完整列表。
set;
p1iqtdky2#
编写构造的更正确方法 ${word:word} 那就是写作 ${parameter:offset} . 它导致参数扩展,它扩展到从字符开始的参数值部分(从0开始计数),这是通过将偏移量扩展到参数的末尾确定的。它还有一个变种 ${parameter:offset:length } -扩展到参数值中从字符开始的部分(从0开始计数),该字符是通过将偏移量扩展为算术表达式确定的,由长度定义的算术表达式确定的字符数组成。所以我认为在您的例子中,基本上是从platformtype获取数据库的名称。有关这方面的更多详细信息,请查看bash手册页中的look for parameter expansion。
${word:word}
${parameter:offset}
${parameter:offset:length }
2条答案
按热度按时间8yparm6h1#
在hql文件中
use
命令设置默认数据库。请参见使用数据库。这个
${platformType:platformName}
Hive的变量符号在哪里platformType
是命名空间和platformName
是变量名。语言手册的“使用变量”部分对此进行了解释。如果你想知道一个特定变量的值,你可以使用
set
比如:它会打印出值。你也可以跑步
set;
获取所有名称空间中已知变量的完整列表。p1iqtdky2#
编写构造的更正确方法
${word:word}
那就是写作${parameter:offset}
. 它导致参数扩展,它扩展到从字符开始的参数值部分(从0开始计数),这是通过将偏移量扩展到参数的末尾确定的。它还有一个变种${parameter:offset:length }
-扩展到参数值中从字符开始的部分(从0开始计数),该字符是通过将偏移量扩展为算术表达式确定的,由长度定义的算术表达式确定的字符数组成。所以我认为在您的例子中,基本上是从platformtype获取数据库的名称。
有关这方面的更多详细信息,请查看bash手册页中的look for parameter expansion。