我正在做一个测试,我必须找出一个表的分区数,并检查它是否正确。如果我使用show partitions TableName,我会按名称得到所有分区,但我希望得到分区数,就像show count(partitions) TableName沿着的东西(它返回OK btw..所以它不好),得到12(例如)。有没有办法做到这一点?
show partitions TableName
show count(partitions) TableName
3ks5zfa01#
使用Hive CLI
$ hive --silent -e "show partitions <dbName>.<tableName>;" | wc -l
--silent用于启用无提示模式-e告诉配置单元执行引用查询字符串
bvjveswy2#
您可以用途:
select count(distinct <partition key>) from <TableName>;
n1bvdmb63#
通过使用下面的命令,您将获得所有分区,并且在最后它还会显示提取的行数。[数据库名称.]表名称[分区(分区规范)];〈失败的图片示例〉
fkvaft9z4#
你可以使用WebHCat接口来获取这样的信息。这样做的好处是你可以在任何可以访问服务器的地方运行命令。结果是JSON --使用你选择的JSON解析器来处理结果。在这个将WebHCat结果传送到Python的例子中,只返回数字24,表示这个表的分区数。(服务器名称是名称节点)。
curl -s 'http://*myservername*:50111/templeton/v1/ddl/database/*mydatabasename*/table/*mytablename*/partition?user.name=*myusername*' | python -c 'import sys, json; print len(json.load(sys.stdin)["partitions"])' 24
xnifntxz5#
在scala中,你可以做以下事情:
sql("show partitions <table_name>").count()
csga3l586#
我用了跟踪。beeline -silent --showHeader=false --outputformat=csv2 -e 'show partitions <dbname>.<tablename>' | wc -l
beeline -silent --showHeader=false --outputformat=csv2 -e 'show partitions <dbname>.<tablename>' | wc -l
sbtkgmzw7#
请使用下列语法:
show create table <table name>;
7条答案
按热度按时间3ks5zfa01#
使用Hive CLI
--silent用于启用无提示模式
-e告诉配置单元执行引用查询字符串
bvjveswy2#
您可以用途:
n1bvdmb63#
通过使用下面的命令,您将获得所有分区,并且在最后它还会显示提取的行数。
[数据库名称.]表名称[分区(分区规范)];
〈失败的图片示例〉
fkvaft9z4#
你可以使用WebHCat接口来获取这样的信息。这样做的好处是你可以在任何可以访问服务器的地方运行命令。结果是JSON --使用你选择的JSON解析器来处理结果。
在这个将WebHCat结果传送到Python的例子中,只返回数字24,表示这个表的分区数。(服务器名称是名称节点)。
xnifntxz5#
在scala中,你可以做以下事情:
csga3l586#
我用了跟踪。
beeline -silent --showHeader=false --outputformat=csv2 -e 'show partitions <dbname>.<tablename>' | wc -l
sbtkgmzw7#
请使用下列语法: