是否可以计算分区数?

dia*_*zar 5 hadoop hive hiveql

我正在做一个测试,我必须找出表的分区数并检查它是否正确。如果我使用,show partitions TableName我会按名称获取所有分区,但我希望获得分区数,例如沿线的某些内容show count(partitions) TableName(顺便说一句,它返回 OK .. 所以它不好)并获得 12(例如)。
有什么办法可以实现这个吗??

Vis*_*ali 5

使用Hive CLI

$ hive --silent -e "show partitions <dbName>.<tableName>;" | wc -l
Run Code Online (Sandbox Code Playgroud)

--silent 是开启静音模式

-e 告诉 hive 执行引用的查询字符串


小智 3

你可以使用:

select count(distinct <partition key>) from <TableName>;
Run Code Online (Sandbox Code Playgroud)

  • 使用此命令,hive 将查找所有行,找到不同/唯一的分区键并最终对它们进行计数。正如您可以想象的那样,这可能会非常慢。从“show partitions &lt;TableName&gt;;”中计数会更快 但我还没有找到一种方法来做到这一点。 (4认同)