diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java index c935b743cf..5ec6d3bf7d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java @@ -183,8 +183,10 @@ public boolean checkBucketedTable(Table tbl, ParseContext pGraphContext, return false; } - // Tez can handle unpopulated buckets - if (!HiveConf.getVar(pGraphContext.getConf(), HiveConf.ConfVars.HIVE_EXECUTION_ENGINE).equals("tez")) { + // Tez, Spark can handle unpopulated buckets + String engine = HiveConf.getVar(pGraphContext.getConf(), + HiveConf.ConfVars.HIVE_EXECUTION_ENGINE); + if (!engine.equals("tez") && !engine.equals("spark")) { if (tbl.isPartitioned()) { List partitions = prunedParts.getNotDeniedPartns(); // construct a mapping of (Partition->bucket file names) and (Partition -> bucket number)