使用shell脚本执行hive查询并将结果输出到本地文件

简单实用的脚本分享。

关于hive命令的3种调用方式:

(1)hive –f  file.sql(适合多语句)

(2)hive -e  'sql语句'(适合短语句)

(3)hive (直接使用hive交互式模式)

方式一:

1.准备hive查询语句

//创建文本文件

touch read.sql

//加入要执行的hive查询语句,例:

show databases;
show tables;
use default;
select * from test01;

2.执行并查看结果

不进入交互模式,直接执行:

hive -f read.sql >> write1.txt 

查看结果: 

[liuyu@hadoop102 datas]$ cat write1.txt 
default
student
test01
张三    20211122        12345678911     622421199701111111      张三    甘·J12345
李四    20211123        12345678911     622421199701111112      李四    甘·A12345
王五    20211122        12345678912     622421199701111113      王五    甘·B12345
赵六    20211125        12345678915     622421199701111114      赵六    甘·C12345
Jack    20211122        12345678916     622421199701111115      Jack    甘·D12345
Tom     20211122        12345678911     622421199701111116      Tom     DY·94568
Li.see  20211127        12345678917     622421199701111117      Li.see  DD·94568
John jeery      20211126        12345678919     622421199701111118      John jeery      DB·94568

方式二:

1.准备hive查询语句

//创建文本文件

touch read.txt

//加入要执行的hive查询语句,例:

show databases;
show tables;
use default;
select * from test01;

2.准备shell脚本

vi read.sh

#! /bin/bash

#循环按行读取本地文件

while read line

do

  #执行SQL语句并将查询结果重定向到本地文件中

  $HIVE_HOME/bin/hive -e "$line" >> write.txt

#读取的本地文件路径
done < ./read.txt

3.执行并查看结果

执行脚本:

sh read.sh >/dev/null 2>&1

查看结果:

cat write.txt 

[liuyu@hadoop102 datas]$ cat write2.txt 
default
student
test01
张三    20211122        12345678911     622421199701111111      张三    甘·J12345
李四    20211123        12345678911     622421199701111112      李四    甘·A12345
王五    20211122        12345678912     622421199701111113      王五    甘·B12345
赵六    20211125        12345678915     622421199701111114      赵六    甘·C12345
Jack    20211122        12345678916     622421199701111115      Jack    甘·D12345
Tom     20211122        12345678911     622421199701111116      Tom     DY·94568
Li.see  20211127        12345678917     622421199701111117      Li.see  DD·94568
John jeery      20211126        12345678919     622421199701111118      John jeery      DB·94568

 ok

你可能感兴趣的:(hive,shell,shell,hive)