[英]Retrieving Hive Table Location using Java
有没有一种方法可以使用Java jdbc检索配置单元表的hdfs位置。
例如:
我有一个临时表t1。 在位置'/ user / tables_list / t1';
我想使用Java代码检索此位置。
据我所试,还没有直接的方法可以做到这一点。 但是,一旦建立了JDBC连接,就可以执行“ DESCRIBE EXTENDED”,(在我做的测试中)它将列出以下表的列:
res = stmt.executeQuery("DESCRIBE EXTENDED tweets");
while(res.next()){
System.out.println(res.getString(1));
}
但是,对于最后一行,您需要使用:
res.getString(2)
这将为您提供需要解析的详细表描述,但是其中某处有一个location字段
location:hdfs://localhost:8020/user/hive/warehouse/social.db/tweets
这样做的问题是很多手工工作,因为方法如下:
res.last()
要么
res.isLast()
不支持,它们将有很大帮助。
我有相同的要求,并且使用了HiveMetaStoreClient API,它使输入变得如此简单:
srcTable.getSd().getLocation();
srcTable应该是通过提供表规范从Hive metastore检索的表对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.