我正在尝试beeline cli查询配置单元表并将输出结果存储为变量。使用直线命令:
beeline -u connection_string -n user_name -w password_file \
-e "select count(*) from db.table_name"
使用此命令,我得到的当前输出结果如下:
+---------------+--+
| record_count |
+---------------+--+
| 80785 |
+---------------+--+
而我需要的结果是: Record count:80785
我使用的另一个命令是:
beeline -u connection_string -n user_name -w password_file \
-e "select * from db.table_name;” > result.csv
再次以表格格式显示结果 |
.
基本上,默认情况下,beeline返回的是标题( table_name.column_name
)然后以表格形式显示数据。然而,我想消除这个问题,并得到类似hivecli的结果。
2条答案
按热度按时间jgwigjjp1#
beeline有很多命令行选项。
在您的情况下,您可以使用:
vql8enpb2#
你可以用论点
--showHeader=false --outputformat=tsv2
来说明这一点。使用此格式,您的命令如下
考虑是否使用tsv2
如果使用dsv(分隔符为|)
您的数据将如下所示。请记住,如果值中有特殊字符或新行,则这三个值都是用单引号括起来的。通过将disable.quoting.for.sv设置为true,可以禁用报价。
使用csv和tsv的更多选项
csv,tsv这两种格式的区别仅仅在于值之间的分隔符,csv的分隔符是逗号,tsv的分隔符是tab。
当使用csv时,数据将如下所示
当使用tsv时
在使用csv或tsv时要小心,你总是会有一个单引号被值包围,而且你无法摆脱它,这在少数情况下可能会导致一些问题。
希望以上的详细解释能涵盖所有你想涵盖的可能案例。
有关更多说明,请访问apachebeeline wiki页面。干杯!!