如何在配置单元查询中使用mysql查询结果

ycl3bljg  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(434)

我有一个要求,比如使用mysql查询结果到shell脚本中的配置单元查询,为此我实现了下面的代码

ctrl_tbl_date=`mysql -N -h ${Mysql_Host_Name} -u ${Mysql_Uname} -p${Mysql_pwd} -e "use ${MySQLDB};select max(Processing_Datetime) from ${Ctrl_Tbl}:"`

echo "$ctrl_tbl_date">>/edh_fw/scripts/sqoop_export_by_key/out_test6.txt 

echo "taking the data which is satisfying below conditions"

temp=hive -v -e "set hive.exec.compress.output=false;insert overwrite directory '${temp_incremental_loc}' row format delimited fields terminated by '\t' stored as textfile select * from ${src_table} where createDate>'${ctrl_tbl_date}';"

echo "$temp">>/edh_fw/scripts/sqoop_export_by_key/out_test7.txt

我将每个值作为一个动态从脚本顶部初始化的执行行传递。。在这里我没有得到 ctrl_tbl_date 当然mysql查询结果没有赋值给变量…请帮我解决这个问题

lztngnrs

lztngnrs1#

使用

temp=$(hive -v -e "set hive.exec.compress.output=false;insert overwrite directory '${temp_incremental_loc}' row format delimited fields terminated by '\t' stored as textfile select * from ${src_table} where createDate>'${ctrl_tbl_date}';")

以便将inside查询的结果放入temp变量中。。。
现在,不使用$(),如下所示

temp=hive -v -e "set hive.exec.compress.output=false;insert overwrite directory '${temp_incremental_loc}' row format delimited fields terminated by '\t' stored as textfile select * from ${src_table} where createDate>'${ctrl_tbl_date}';"

你只是把右边写的东西分配给左边,实际上你想把右边的执行结果分配给左边。。。

相关问题