如何将变量从python发送到shell,然后发送到hive?

时间:2019-06-07 22:16:14

标签: python shell hive

我正在尝试使用Shell脚本运行一些配置单元代码。但是我需要在调用直线之前进行一些数组操作。我尝试在shell中进行数组操作,但遇到了问题。现在,另一个选择是使用python进行数组操作,然后将我的变量传递给shell脚本,然后再将它们传递给hive。是我正在尝试做的POC,看是否有可能。

如果有一种方法可以在shell脚本中捕获table_name var值,将很有帮助。

Python代码:

from subprocess import Popen
table_name='abcd'
Process=Popen(['/users/${whoami}/username/run.sh',str(table_name)],shell=True)

Shell脚本:(run.sh)

process_name=run_smaple
log_path=/users/$(whoami)/username
script_path=/users/$(whoami)/username
schema_name=dev_env
suffix=$(date +'%d-%m-%Y_%H:%M:%S')
log_file=${log_path}/${process_name}_${suffix}.log
beeline_cont="jdbc:hive2...... "

beeline -u ${beeline_cont} \
        --hiveconf hive.execution.engine=mr \
        --hiveconf mapred.job.queuename=ent\
        --hivevar script=${script} \
        --hivevar schema_name=${schema_name} \
        --hivevar table_name=${table_name} \
        -f ${script_path}/sample.hql &>> $log_file

配置单元(sample.hql)

select count(*) from ${schema_name}.${table_name};

无法识别“ dev_env”附近的输入。表格名称中的''(状态= 42000,代码= 40000)

0 个答案:

没有答案