2014-06-12 28 views
0

是否有方法可以使用 Java jdbc检索配置单元表的hdfs位置。使用Java检索Hive表位置

例如:

我有一个临时表t1。位于'/ user/tables_list/t1'处的 ;

我想使用java代码检索这个位置。

回答

0

据我测试,没有一个直接的方法来做到这一点。但是,一旦你设置你的JDBC连接,您可以执行“描述EXTENDED”,这(在测试我一样)将列出表列:

res = stmt.executeQuery("DESCRIBE EXTENDED tweets"); 
while(res.next()){ 
    System.out.println(res.getString(1)); 
} 

但是,在最后一排,你“会需要使用:

res.getString(2) 

它会给你,你需要分析一个详细的表格说明,但地方在那里有AA位置字段

location:hdfs://localhost:8020/user/hive/warehouse/social.db/tweets 

的问题,这是这是很多手工的,因为方法,如:

res.last() 

res.isLast() 

不支持,他们将是一个很大的帮助的。

0

我有同样的要求,我使用HiveMetaStoreClient API和它使得容易打字:

srcTable.getSd().getLocation(); 

srcTable要应是从蜂巢metastore通过给予表规范检索的表格对象。