2014-06-12 30 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通過給予表規範檢索的表格對象。