在后台执行HIVE查询 [英] executing HIVE query in background

查看:1137
本文介绍了在后台执行HIVE查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在后台执行HIVE查询时, false>

从table1中选择count(1)where column1 ='value1 ';



我试图用下面的脚本编写它



 #!/ usr / bin / kshexec 1> / home / koushik / Logs /`basename $ 0 |切-d。 -f1 | sed's / \.sh // g'` _ $(date +%Y%m%d_%H%M%S)。log 2>& 1ST_TIME =`date +%s`cd $ HIVE_HOME /bin./hive -e'SELECT COUNT(1)FROM TABLE1 WHERE COLUMN1 =''value1'';'END_TIME =`date +%s`TT_SECS = $((END_TIME  -  ST_TIME))TT_HRS = $((TT_SECS / ())TT_REM_MS = $((TT_SECS%3600))TT_MINS = $((TT_REM_MS / 60))TT_REM_SECS = $((TT_REM_MS%60))printf\\\
printf执行脚本所用的总时间= $ TT_HRS:$ TT_MINS:$ TT_REM_SECS HH:MM:SSprintf\ n

但出现错误,如$ / b
$ b

FAILED:SemanticException [错误10004]:行1:77无效的表别名或列引用'value1 '



让我知道我在做错的地方。

解决方案

我能够解决它取代单引号wi双引号。现在修改的语句看起来像
./hive -e'SELECT COUNT(1)FROM Table1 WHERE Column1 =Value1;'


how to execute a HIVE query in background when the query looks like below

Select count(1) from table1 where column1='value1';

I am trying to write it using a script like below

 #!/usr/bin/ksh
exec 1> /home/koushik/Logs/`basename $0 | cut -d"." -f1 | sed 's/\.sh//g'`_$(date +"%Y%m%d_%H%M%S").log 2>&1

ST_TIME=`date +%s`

cd $HIVE_HOME/bin

./hive -e 'SELECT COUNT(1) FROM TABLE1 WHERE COLUMN1 = ''value1'';'

END_TIME=`date +%s`
TT_SECS=$(( END_TIME - ST_TIME))
TT_HRS=$(( TT_SECS / 3600 ))
TT_REM_MS=$(( TT_SECS % 3600 ))
TT_MINS=$(( TT_REM_MS / 60 ))
TT_REM_SECS=$(( TT_REM_MS % 60 ))
printf "\n"
printf "Total time taken to execute the script="$TT_HRS:$TT_MINS:$TT_REM_SECS HH:MM:SS
printf "\n"

but getting error like

FAILED: SemanticException [Error 10004]: Line 1:77 Invalid table alias or column reference 'value1'

let me know exactly where I am doing mistake.

解决方案

I am able to resolve it replacing single quote with double quote. Now the modified statement looks like ./hive -e 'SELECT COUNT(1) FROM Table1 WHERE Column1 = "Value1";'

这篇关于在后台执行HIVE查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆