diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java index ba97d22..24af4bc 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java @@ -1414,8 +1414,15 @@ public static void mvFileToFinalPath(Path specPath, Configuration hconf, if(statuses != null && statuses.length > 0) { PerfLogger perfLogger = SessionState.getPerfLogger(); perfLogger.PerfLogBegin("FileSinkOperator", "RemoveTempOrDuplicateFiles"); + + // move to the file destination + log.info("Moving tmp dir: " + tmpPath + " to: " + specPath); + perfLogger.PerfLogBegin("FileSinkOperator", "RenameOrMoveFiles"); + Utilities.renameOrMoveFiles(fs, tmpPath, specPath); + perfLogger.PerfLogEnd("FileSinkOperator", "RenameOrMoveFiles"); + // remove any tmp file or double-committed output files - List emptyBuckets = Utilities.removeTempOrDuplicateFiles(fs, statuses, dpCtx, conf, hconf); + List emptyBuckets = Utilities.removeTempOrDuplicateFiles(fs, specPath, dpCtx, conf, hconf); perfLogger.PerfLogEnd("FileSinkOperator", "RemoveTempOrDuplicateFiles"); // create empty buckets if necessary if (emptyBuckets.size() > 0) { @@ -1423,12 +1430,6 @@ public static void mvFileToFinalPath(Path specPath, Configuration hconf, createEmptyBuckets(hconf, emptyBuckets, conf, reporter); perfLogger.PerfLogEnd("FileSinkOperator", "CreateEmptyBuckets"); } - - // move to the file destination - log.info("Moving tmp dir: " + tmpPath + " to: " + specPath); - perfLogger.PerfLogBegin("FileSinkOperator", "RenameOrMoveFiles"); - Utilities.renameOrMoveFiles(fs, tmpPath, specPath); - perfLogger.PerfLogEnd("FileSinkOperator", "RenameOrMoveFiles"); } } else { fs.delete(tmpPath, true);