diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/spark/GenSparkUtils.java ql/src/java/org/apache/hadoop/hive/ql/parse/spark/GenSparkUtils.java index c19bc21..9d190f0 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/spark/GenSparkUtils.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/spark/GenSparkUtils.java @@ -189,7 +189,15 @@ public void removeUnionOperators(Configuration conf, GenSparkProcContext context throws SemanticException { List> roots = new ArrayList>(); - roots.addAll(work.getAllRootOperators()); + + // For MapWork, getAllRootOperators is not suitable, since it checks + // getPathToAliases, and will return null if this is empty. Here we are + // replacing getAliasToWork, so should use that information instead. + if (work instanceof MapWork) { + roots.addAll(((MapWork) work).getAliasToWork().values()); + } else { + roots.addAll(work.getAllRootOperators()); + } if (work.getDummyOps() != null) { roots.addAll(work.getDummyOps()); }