将Oracle查询转换为hive

时间:2016-10-26 02:05:10

标签: bash shell hadoop hive hql

Oracle查询:

select col_name INTO XYZ from table_name where <conditions1 and condition2....> ---这让我得到了变量XYZ的查询值,它不是一个表而只是一个平面变量[oracle查询将单个值返回到XYZ]。然后,该XYZ被其他功能消耗用于比较,例如。它在查询中用于关系运算符,如ABC&gt; XYZ(ABC是变量名)。

我可以使用hive中的create table XYZ..as ..子句来完成此操作但是这不能用于hive中的关系运算符(ABC&gt; XYZ)。

我尝试通过shell脚本填充变量XYZ,如: hive -e'从table_name中选择col_name,其中'&gt; a.txt(将输出移动到a.txt)

temp = cat a.txt(现在我可以在temp中获取值)

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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