我在Hive中有一些外部表,想编写一个脚本来调整其中的数据。由于Hive是读取文件的真实来源,因此我想从中获取分区的位置。
是否有一种方便的语法来获取外部表的所有分区的位置列表?
describe命令将执行此操作:
DESCRIBE FORMATTED Db_name.table_name
如果您有权访问hive metastore
,则可以通过在脚本/程序下进行查询来获取详细信息:
例如在配置单元metastore上查询:
SELECT d.NAME, a.tbl_name, b.location, c.PART_NAME
FROM dbs d
inner join tbls a ON d.DB_ID = a.db_id
inner JOIN sds b ON a.SD_ID = b.sd_id
LEFT outer JOIN partitions c ON a.TBL_ID = c.tbl_id
WHERE a.tbl_name = 'your_table_name' AND d.name = 'your_db_name'