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

dongjoon pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/spark-connect-swift.git


The following commit(s) were added to refs/heads/main by this push:
     new 89b4b7d  [SPARK-52151] `DataFrameWriterV2.overwrite` should handle 
`condition`
89b4b7d is described below

commit 89b4b7db9c221a67b589519092a53708e5c3476f
Author: Dongjoon Hyun <dongj...@apache.org>
AuthorDate: Wed May 14 19:59:46 2025 -0700

    [SPARK-52151] `DataFrameWriterV2.overwrite` should handle `condition`
    
    ### What changes were proposed in this pull request?
    
    This PR aims to fix `DataFrameWriterV2.overwrite` to handle the `condition` 
parameter.
    
    ### Why are the changes needed?
    
    This was missed at the initial implementation.
    
    ### Does this PR introduce _any_ user-facing change?
    
    Yes, but this is a bug fix.
    
    ### How was this patch tested?
    
    Pass the CIs. Apache Iceberg CI will be added soon.
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    No.
    
    Closes #149 from dongjoon-hyun/SPARK-52151.
    
    Authored-by: Dongjoon Hyun <dongj...@apache.org>
    Signed-off-by: Dongjoon Hyun <dongj...@apache.org>
---
 Sources/SparkConnect/DataFrameWriterV2.swift | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/Sources/SparkConnect/DataFrameWriterV2.swift 
b/Sources/SparkConnect/DataFrameWriterV2.swift
index 55b8503..6deac16 100644
--- a/Sources/SparkConnect/DataFrameWriterV2.swift
+++ b/Sources/SparkConnect/DataFrameWriterV2.swift
@@ -109,7 +109,7 @@ public actor DataFrameWriterV2: Sendable {
   /// output table.
   /// - Parameter condition: A filter condition.
   public func overwrite(condition: String) async throws {
-    try await executeWriteOperation(.overwrite)
+    try await executeWriteOperation(.overwrite, condition)
   }
 
   /// Overwrite all partition for which the ``DataFrame`` contains at least 
one row with the contents
@@ -120,7 +120,10 @@ public actor DataFrameWriterV2: Sendable {
     try await executeWriteOperation(.overwritePartitions)
   }
 
-  private func executeWriteOperation(_ mode: WriteOperationV2.Mode) async 
throws {
+  private func executeWriteOperation(
+    _ mode: WriteOperationV2.Mode,
+    _ overwriteCondition: String? = nil
+  ) async throws {
     var write = WriteOperationV2()
 
     let plan = await self.df.getPlan() as! Plan
@@ -139,6 +142,9 @@ public actor DataFrameWriterV2: Sendable {
     for property in self.tableProperties.toStringDictionary() {
       write.tableProperties[property.key] = property.value
     }
+    if let overwriteCondition {
+      write.overwriteCondition = overwriteCondition.toExpression
+    }
     write.mode = mode
 
     var command = Spark_Connect_Command()


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to