diff --git ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java index 1f9fb3b897..bbbe535676 100644 --- ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java +++ ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java @@ -2876,7 +2876,12 @@ private void constructOneLBLocationMap(FileStatus fSta, // calculate full path spec for each valid partition path validPartitions.forEach(partPath -> { Map fullPartSpec = Maps.newLinkedHashMap(partSpec); - if (!Warehouse.makeSpecFromName(fullPartSpec, partPath, new HashSet<>(partSpec.keySet()))) { + String staticPart = Warehouse.makeDynamicPartName(partSpec); + String dynamicPart = partPath.getName(); + String p = partPath.toString(); + String partPathStaticPart = p.substring(0, p.length() - partPath.getName().length()); + String computedPath = new StringBuilder(partPathStaticPart).append(staticPart).append(dynamicPart).toString(); + if (!Warehouse.makeSpecFromName(fullPartSpec, new Path(computedPath), new HashSet<>(partSpec.keySet()))) { Utilities.FILE_OP_LOGGER.warn("Ignoring invalid DP directory " + partPath); } else { PartitionDetails details = new PartitionDetails();