SparkSQL / Hive:相当于MySQL的`information_schema.table。{data_length,table_rows}`?

时间:2018-03-09 22:16:50

标签: apache-spark hive apache-spark-sql hiveql

MySQL中,我们可以查询表格information_schema.tables并获取有用信息,例如data_lengthtable_rows

select
  data_length
  , table_rows
from
  information_schema.tables
where  
  table_schema='some_db'
  and table_name='some_table';

+-------------+------------+
| data_length | table_rows |
+-------------+------------+
|        8368 |        198 |
+-------------+------------+
1 row in set (0.01 sec)

SparkSQL / Hive是否有等效的机制?

我可以使用SparkSQL或程序API,例如HiveMetaStoreClient(java API org.apache.hadoop.hive.metastore.HiveMetaStoreClient)。对于后者,我阅读了API doc(here),但找不到与表行数和大小相关的任何方法。

1 个答案:

答案 0 :(得分:0)

没有一个元信息命令。而是有一组commands,您可以使用

描述表/视图/列

desc [formatted|extended] schema_name.table_name;

show table extended like part_table;
SHOW TBLPROPERTIES tblname("foo");

显示列统计信息(Hive 0.14.0及更高版本)

DESCRIBE FORMATTED [db_name.]table_name column_name;
DESCRIBE FORMATTED [db_name.]table_name column_name PARTITION (partition_spec);