将 Oracle 查询转换为配置单元

Convert Oracle query into hive

Oracle 查询:

select col_name INTO XYZ from table_name where <conditions1 and condition2....> --- 这让我将查询的值转换为变量 XYZ,它不是 table 而只是一个平面变量 [oracle 查询 return a单个值转换为 XYZ]。这个 XYZ 然后被另一个函数使用以进行比较,例如。它在关系运算符的查询中使用,如 ABC>XYZ(ABC 是一个变量名)。

我本可以在 hive 中使用 create table XYZ..as .. 子句来完成此操作,但是这不能与 hive(ABC>XYZ) 中的关系运算符一起使用。

我试图通过 shell 脚本填充变量 XYZ,例如: hive -e 'select col_name from table_name where ' >a.txt(将输出移至 a.txt)

temp=cata.txt(现在我可以在这里获取临时值)

hive -e 'use database ; set hivevar:XYZ=$temp'(现在我试图在 hive-shell 中设置此变量并将其用作 ${hivevar:XYZ} ) 这里的问题是 temp 在 bash-shell 中,在 运行 这个命令之后它将转到 hive-shell 并搜索 temp在蜂巢中。有什么办法可以让 bash 中的 temp 设置为配置单元中的 XYZ=temp

P.S:甚至尝试使用 hiveconf,但问题与 hivevar 相同。

在此特定用例中,您可以 运行

 echo 'use database ; set hivevar:XYZ=$temp' > initFile
 hive -i initFile

hive -i 运行s初始化文件中的命令然后打开hive-shell.