当我将项目从hive 0.13更新到hive 1.2时,我为HCatMutilTableInputFormat
创建了MapReduce
输入多表到HCatlog
的{{1}}。在配置单元0.13中,createRecordReader
的方法inputFormat
可以从TableInfo
获得inputSplit
。但版本1.2无法实现。
以下是我收到的错误消息 -
Hcatalog 1.2 createRecordReader
的方法HCatBaseInputFormat
和partitionInfo.getTableInfo()
为空。
谁能告诉我为什么?我可以从tableInfo
获取InputSplit
吗?我怎么能得到它?
这是我的代码 -
HCatSplit hcatSplit = InternalUtil.castToHCatSplit(split);
PartInfo partitionInfo = hcatSplit.getPartitionInfo();
// Ensure PartInfo's TableInfo is initialized.
if (partitionInfo.getTableInfo() == null) {
partitionInfo
.setTableInfo(((InputJobInfo) HCatUtil.deserialize(taskContext.getConfiguration().get(HCatConstants.HCAT_KEY_JOB_INFO))).getTableInfo());
}
JobContext jobContext = taskContext;
Configuration conf = jobContext.getConfiguration();