diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkUtilities.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkUtilities.java index fac3cea..b3c9610 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkUtilities.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkUtilities.java @@ -202,7 +202,11 @@ public static void collectOp(Collection> result, Operator root, C if (root == null) { return; } - if (clazz.equals(root.getClass())) { + // There are two cases for the relation of root.getClass() and clazz + // 1. they are equal + // 2. root.getClass() is a subclass of clazz + // clazz.isAssignableFrom(root.getClass()) matches above two cases + if (clazz.isAssignableFrom(root.getClass())) { result.add(root); } for (Operator child : root.getChildOperators()) {