我试图使用java中的亚稳客户端将表格属性(如表db、名称、所有者和hdfs位置)从单元转移区中提取出来。我认为我可以得到表数据库和名称,但我不知道如何抓取所有者和hdfs的位置。有可能吗?我已经搜索了几个小时的医生和网络,没有骰子。
发布于 2015-11-24 14:44:01
可能是这样的:
org.apache.hadoop.hive.metastore.api.Table table=..........;
org.apache.hadoop.hive.metastore.api.StorageDescriptor sd=table.getSd();
String loc=sd.getLocation();
String own=sd.getOwner();https://hive.apache.org/javadocs/r1.2.2/api/org/apache/hadoop/hive/metastore/api/Table.html https://hive.apache.org/javadocs/r1.2.2/api/org/apache/hadoop/hive/metastore/api/StorageDescriptor.html
发布于 2015-11-24 04:07:44
如果它是分区表,则可以执行以下操作:
描述格式化表分区(partition_name=partition_value)。
它将显示底层hdfs路径和表的所有者。
发布于 2015-11-24 10:00:21
我在具有ClouderaCDH5.1.0的virtualbox上运行了以下命令
$ hive -e“描述扩展的tablename”
该命令的输出除了提供tablename、dbname、owner、createtime和location之外,还提供信息。您还可以参考以下CWIKI链接以获得更多详细信息
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Describe
https://stackoverflow.com/questions/33880050
复制相似问题