我正在尝试从a的元数据中ResultSet
获取列的名称,但是在Hive中我得到列名称,如果形式table_name.column_name
和我只想拥有column_name
(类似于我从MySQL获得的例子).可能吗 ?
对的,这是可能的.有两种方法可以完成:
1.)使用Hive JDBC连接(您正在寻找).
2.)使用HiveMetastoreClient.
以下是上述两种方法的代码片段:
第一种方法:
ResultSet resultSet = <custom_class_for_hive_jdbc_connector>.executeQuery("DESCRIBE <TABLE_NAME>");
ResultSetMetaData metaData = resultSet.getMetaData();
while (resultSet.next()) {
System.out.println(" Column names : "+resultSet.getString(metaData.getColumnName(1)));
}
Run Code Online (Sandbox Code Playgroud)
在这种方法中,我们需要创建一个resultsetmetadata对象,并使用该对象,我们可以获得查询输出的详细信息.在你的情况下"描述表"
第二种方法:
HiveMetaStoreClient metastoreClient = null;
HiveConf hiveConf = new HiveConf();
metastoreClient = new HiveMetaStoreClient(hiveConf);
List<FieldSchema> list = metastoreClient.getFields(<database_name>,<table_name>);
for (int i = 0; i < list.size(); i++) {
System.out.println("Column names : "+list.get(i).getName());
}
metastoreClient.close();
Run Code Online (Sandbox Code Playgroud)
在这种方法中,我们没有运行任何查询,我们只是连接到HiveMetastore,从那里我们得到给定数据库下给定表的详细信息.
希望能帮助到你...!!!
归档时间: |
|
查看次数: |
3918 次 |
最近记录: |