3

我想修复任何新添加/删除的分区的配置单元表。而不是在配置单元中手动运行 msck 修复命令,有没有办法在 java 中实现这一点?我试图从 hdfs 和配置单元元存储中获取所有分区,然后比较后会将新添加/删除的分区放入 hive 元存储中。但我无法从 hivecontext 获取 api。我尝试使用 hivecontext 获取所有分区,但它抛出错误表未找到。

System.out.println(hiveContext.metadataHive().getTable("anshu","mytable").getAllPartitions());

有没有办法使用java在hive中添加/删除分区?

4

1 回答 1

3

火花选项:

使用 hivecontext 您可以像下面的示例一样执行此操作。无需手动操作

sqlContext = HiveContext(sc)
sqlContext.sql("MSCK REPAIR TABLE your table")

有没有办法使用java在hive中添加/删除分区?

普通的java选项:

如果您想以纯 java 方式而不使用 spark,使用纯 java 代码,那么您可以使用类HiveMetaStoreClient直接从 HiveMetaStore 查询。

在此处输入图像描述 在此处输入图像描述

在此处查看我的答案以及示例用法

于 2017-01-14T20:19:32.123 回答