繁体   English   中英

使用Java检索Hive表位置

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM