shell腳本中變量接受hive語句的返回值問題


問題

20190916


有時在寫shell腳本時,腳本變量可以接受hive語句的返回值

#!bin/bash
sql1="
use mydatabase;
select min(colmun) from table_name;
"
var1=`hive -S -e "${sql1}"`
sql2="
use  mydatabase;
select cast(1 as tinyint) as flag;
"
var2=`hive -S -e "${sql2}"`

但有時,hive -S -e "sql"語句執行完后,有時候執行會包含 WARN 開頭的日志:
WARN: The method class org.apache.commons.logging.impl.SLF4JLogFactory#release() was invoked.
WARN: Please see http://www.slf4j.org/codes.html#release for an explanation.
此時變量var接受的返回值里含有這幾行WARN...語句,下面幾種解決方法。\

  • 方法1
var=`hive -e "${sql}" | grep -v "WARN"`
  • 方法2
  • 添加 export HIVE_SKIP_SPARK_ASSEMBLY=true; 到 /etc/profile
echo “export HIVE_SKIP_SPARK_ASSEMBLY=true;” >> /etc/profile
source /etc/profile

參考

hive -e "sql"重定向
hive -e "sql"WARN
shell grep命令和正則表達


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM