diff --git a/mma-server/src/main/java/com/aliyun/odps/mma/server/job/AbstractTableJob.java b/mma-server/src/main/java/com/aliyun/odps/mma/server/job/AbstractTableJob.java index bfe564cb..1d4606fa 100644 --- a/mma-server/src/main/java/com/aliyun/odps/mma/server/job/AbstractTableJob.java +++ b/mma-server/src/main/java/com/aliyun/odps/mma/server/job/AbstractTableJob.java @@ -377,6 +377,21 @@ private List generateAdaptiveTablePartitionGroups( tmpList.add(new JobAndPtMeta(job, metaSource, source)); } + List partitionMetaModels = tmpList.stream() + .map(o->o.partitionMetaModel).collect(Collectors.toList()); + + // Make sure that the size of each partition is valid. + for (PartitionMetaModel p : partitionMetaModels) { + if (p.getSize() == null) { + LOG.info( + "Database: {}, table: {}, partition: {}, size is not valid", + source.getDatabase(), + source.getTable(), + p.getPartitionValues()); + return null; + } + } + // Sort subjobs & ptModel by pt size in descending order tmpList.sort((o1, o2) -> { if (o1.partitionMetaModel.getSize() > o2.partitionMetaModel.getSize()) { @@ -388,22 +403,8 @@ private List generateAdaptiveTablePartitionGroups( } }); - List partitionMetaModels = tmpList.stream() - .map(o->o.partitionMetaModel).collect(Collectors.toList()); pendingSubJobs = tmpList.stream().map(o->o.job).collect(Collectors.toList()); - // Make sure that the size of each partition is valid. - for (PartitionMetaModel p : partitionMetaModels) { - if (p.getSize() == null) { - LOG.info( - "Database: {}, table: {}, partition: {}, size is not valid", - source.getDatabase(), - source.getTable(), - p.getPartitionValues()); - return null; - } - } - List ret = new LinkedList<>(); int groupDataSizeInGigaByte = Integer.valueOf(config.getOrDefault(