}
@Override
public void checkOutputSpecs(JobContext context) throws IOException, InterruptedException {
Configuration config = context.getConfiguration();
TableDescriptor tableDescriptor = getTableDescriptor(config);
if (tableDescriptor == null) {
throw new IOException("setTableDescriptor needs to be called first.");
}
int shardCount = tableDescriptor.getShardCount();
FileSystem fileSystem = getOutputPath(config).getFileSystem(config);
Path tablePath = new Path(tableDescriptor.getTableUri());
if (fileSystem.exists(tablePath)) {
BlurUtil.validateShardCount(shardCount, fileSystem, tablePath);
} else {
throw new IOException("Table path [ " + tablePath + " ] doesn't exist for table [ " + tableDescriptor.getName()
+ " ].");
}
BlurUtil.validateWritableDirectory(fileSystem, tablePath);
int reducers = context.getNumReduceTasks();
int reducerMultiplier = getReducerMultiplier(config);