diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SparkMapJoinResolver.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SparkMapJoinResolver.java index 4b9a6cb..9ce1a18 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SparkMapJoinResolver.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SparkMapJoinResolver.java @@ -145,14 +145,16 @@ private SparkTask createSparkTask(SparkTask originalTask, parentTask.addDependentTask(resultTask); } } else { - List> parentTasks = originalTask.getParentTasks(); - if (parentTasks != null && parentTasks.size() > 0) { - for (Task parentTask : parentTasks) { - parentTask.addDependentTask(resultTask); + if (originalTask != resultTask) { + List> parentTasks = originalTask.getParentTasks(); + if (parentTasks != null && parentTasks.size() > 0) { + for (Task parentTask : parentTasks) { + parentTask.addDependentTask(resultTask); + } + } else { + physicalContext.addToRootTask(resultTask); + physicalContext.removeFromRootTask(originalTask); } - } else { - physicalContext.addToRootTask(resultTask); - physicalContext.removeFromRootTask(originalTask); } }