上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

hive beeline参数及示例用法

guduadmin21天前

beeline 是一个用于连接 HiveServer2 的命令行工具。

一、beeline参数

使用beeline -u可以指定连接的URL。

例如,beeline -u jdbc:hive2://localhost:10000/default 可以连接到本地的HiveServer2服务。

如果需要用户名和密码进行连接,则可以使用 beeline -u jdbc:hive2://localhost:10000/default -n username -p password 的方式进行连接。如果密码不是在-p之后提供的,则 beeline 将在初始化连接时提示输入密码。

-–incremental=[true/false]  从Hive 2.3版本往后默认是true,在它之前是默认为false。

-–showHeader=[true/false]    展示列名是否在查询结果中。默认是true。

-–outputformat=[table/vertical/csv/tsv/dsv/csv2/tsv2]    结果展示的模式。默认是table。dsv可配合delimiterForDSV一起使用,设置分隔符

-–delimiterForDSV= DELIMITER    用于输出格式中划分值的界定符。默认是 '|',如果需要输入特殊符号,如 '\n001' ,'\x01' 等需在前面加$ ,例 --delimiterForDSV=$'\t'

-e    后跟sql语句

-f  后跟sql语句文件,文件里sql语句前面可以设置hive参数

--hiveconf 给Hive的配置属性赋值,--hiveconf 属性 = value

--hivevar 配置变量名称和值,--hivevar 名称 = value,可用于给 sql 文件传值,例如 -hiveconf etl_date=20231129

结果展示格式(在 outputformat 参数中设置)

展示形式主要是将一行值的字段按照不同分割符分开,主要包括五种分割输出格式:csv, tsv, csv2, tsv2, dsv,目前csv和tsv已经被csv2和tsv2替代了。

csv2,tsv2和dsv格式的含义分别是:

csv2使用的是逗号,

tsv2使用的是tab空格,

dsv是可配置的。对于dsv格式,分隔符可以通过用参数 delimiterForDSV 进行设置,默认是 '|'。

二、示例

1、beeline默认的输出格式为table模式,-–showHeader=默认是true

beeline -e 'select * from import_db.table_test' > test1.txt

2、去掉列名,-–showHeader=false

beeline --showHeader=false -e 'select * from import_db.table_test' > test2.txt

3、用逗号分割

beeline --outputformat=csv2 -e 'select * from import_db.table_test'  > test3.txt

4、用tab作为值之间的分割符

beeline --outputformat=tsv2 -e 'select * from import_db.table_test'  > test4.txt

5、使用dsv默认的分割符,即 '|'

beeline --outputformat=dsv -e 'select * from import_db.table_test'  > test5.txt

6、以 '\t' 作为值之间得分割符(–delimiterForDSV=$'\t')

beeline --outputformat=dsv --delimiterForDSV=$'\t' -e 'select * from import_db.table_test'  > test6.txt

7、以 '#' 作为值之间得分割符(–delimiterForDSV=$'#')

beeline --outputformat=dsv --delimiterForDSV=$'#' -e 'select * from import_db.table_test'  > test7.txt

beeline -u jdbc:hive2://localhost:10000/default --showHeader=true --outputformat=dsv --delimiterForDSV=$'\t' -e 'select * from import_db.test' > test.txt

beeline -u "jdbc:hive2://localhost:10000/default;principal=xxxx" -e "show create table import_db.test"

三、常用日期格式

date +%F  #2023-11-30

date +%Y%m  #202311

date +%Y%m%d  #20231130

date +%Y%m01  #20231101

date +%Y%m%d  #20231130

date -d "1 month ago" +%Y%m%d  #20231030

date -d "1 month ago" +%Y%m01  #20231001

date -d "last month" +%Y%m%d  #20231030

date -d "last month" +%Y%m01  #20231001

date -d "`date -d "last month" +%Y%m01` last day" +%Y%m%d  #20230930

# 上月末(月初前一天)

date -d "`date +%Y%m01` last day" +%Y%m%d

date -d "`date +%Y%m01` last day" +%Y%m%d  #20231031

date -d "`date +%Y%m01` -1 day" +%Y%m%d  #20231031

# 月初后1天

date -d "`date +%Y%m01` 1 day" +%Y%m%d  #20231102

cur_date=20231102

echo $cur_date |cut -c 1-6  #202311

date -d `echo $cur_date |cut -c 1-6`"01" +%F  #2023-11-01

date -d "$(date -d `echo $cur_date |cut -c 1-6`"01" +%F) -1 day" +%Y%m%d  #20231031

date -d "$(date -d `echo $cur_date |cut -c 1-6`"01" +%F) last month" +%Y%m%d  #20231001

date -d "$(date -d "$(date -d `echo $cur_date |cut -c 1-6`"01" +%F) last month" +%Y%m%d) -1 day" +%Y%m%d  #20230930

#设置变量,获取年月

data_month=$(date +%Y%m)

data_file_${data_month}.dat

data_file_$(date +%Y%m).dat

# 跑批常用代码
cur_date=20231102
cur_date2=$(date -d "$(date -d `echo $cur_date |cut -c 1-6`"01" +%F) -1 day" +%Y%m%d)
beeline -u "jdbc:hive2://localhost:10000/default;principal=xxxx" -hiveconf cur_date=${cur_date} -hiveconf cur_date2=${cur_date2} -f test.sql

参考链接:

https://blog.csdn.net/sodaloveer/article/details/128617521

 

网友评论

搜索
最新文章
热门文章
热门标签