将 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.
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.