This is an automated email from the ASF dual-hosted git repository.

danny0405 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/master by this push:
     new 2f7e9caebb0 [HUDI-6763] Optimize collect calls (#9561)
2f7e9caebb0 is described below

commit 2f7e9caebb0e7f68a7cc1a9c541cc67440eafa44
Author: Tim Brown <[email protected]>
AuthorDate: Wed Aug 30 20:37:23 2023 -0500

    [HUDI-6763] Optimize collect calls (#9561)
---
 .../table/action/commit/BaseSparkCommitActionExecutor.java | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git 
a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/commit/BaseSparkCommitActionExecutor.java
 
b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/commit/BaseSparkCommitActionExecutor.java
index 7383f428e0a..040cc798747 100644
--- 
a/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/commit/BaseSparkCommitActionExecutor.java
+++ 
b/hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/commit/BaseSparkCommitActionExecutor.java
@@ -286,7 +286,9 @@ public abstract class BaseSparkCommitActionExecutor<T> 
extends
 
   @Override
   protected void 
setCommitMetadata(HoodieWriteMetadata<HoodieData<WriteStatus>> result) {
-    
result.setCommitMetadata(Option.of(CommitUtils.buildMetadata(result.getWriteStatuses().map(WriteStatus::getStat).collectAsList(),
+    List<HoodieWriteStat> writeStats = 
result.getWriteStatuses().map(WriteStatus::getStat).collectAsList();
+    result.setWriteStats(writeStats);
+    result.setCommitMetadata(Option.of(CommitUtils.buildMetadata(writeStats,
         result.getPartitionToReplaceFileIds(),
         extraMetadata, operationType, getSchemaToStoreInCommit(), 
getCommitActionType())));
   }
@@ -294,16 +296,14 @@ public abstract class BaseSparkCommitActionExecutor<T> 
extends
   @Override
   protected void commit(Option<Map<String, String>> extraMetadata, 
HoodieWriteMetadata<HoodieData<WriteStatus>> result) {
     context.setJobStatus(this.getClass().getSimpleName(), "Commit write status 
collect: " + config.getTableName());
-    commit(extraMetadata, result, 
result.getWriteStatuses().map(WriteStatus::getStat).collectAsList());
-  }
-
-  protected void commit(Option<Map<String, String>> extraMetadata, 
HoodieWriteMetadata<HoodieData<WriteStatus>> result, List<HoodieWriteStat> 
writeStats) {
     String actionType = getCommitActionType();
     LOG.info("Committing " + instantTime + ", action Type " + actionType + ", 
operation Type " + operationType);
     result.setCommitted(true);
-    result.setWriteStats(writeStats);
+    if (!result.getWriteStats().isPresent()) {
+      
result.setWriteStats(result.getWriteStatuses().map(WriteStatus::getStat).collectAsList());
+    }
     // Finalize write
-    finalizeWrite(instantTime, writeStats, result);
+    finalizeWrite(instantTime, result.getWriteStats().get(), result);
     try {
       HoodieActiveTimeline activeTimeline = table.getActiveTimeline();
       HoodieCommitMetadata metadata = result.getCommitMetadata().get();

Reply via email to