是否有方法可以使用 Java jdbc檢索配置單元表的hdfs位置。使用Java檢索Hive表位置
例如:
我有一個臨時表t1。位於'/ user/tables_list/t1'處的 ;
我想使用java代碼檢索這個位置。
是否有方法可以使用 Java jdbc檢索配置單元表的hdfs位置。使用Java檢索Hive表位置
例如:
我有一個臨時表t1。位於'/ user/tables_list/t1'處的 ;
我想使用java代碼檢索這個位置。
據我測試,沒有一個直接的方法來做到這一點。但是,一旦你設置你的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()
不支持,他們將是一個很大的幫助的。
我有同樣的要求,我使用HiveMetaStoreClient API和它使得容易打字:
srcTable.getSd().getLocation();
srcTable要應是從蜂巢metastore通過給予表規範檢索的表格對象。