Hyukjin Kwon created SPARK-61145:
------------------------------------

             Summary: Calls from several Python threads on one DataFrameWriter, 
DataFrameWriterV2 or DataStreamWriter fail with "Already borrowed"
                 Key: SPARK-61145
                 URL: https://issues.apache.org/jira/browse/SPARK-61145
             Project: Spark
          Issue Type: Bug
          Components: Connect
    Affects Versions: connect-rust-4.3.0
            Reporter: Hyukjin Kwon


The writer methods of the Python client that release the GIL while the request 
runs (save, parquet, csv, saveAsTable, create, append, start, toTable, ...) 
took an exclusive Rust borrow of the writer object for the whole request. A 
second thread that called a method of the same writer, a write or a builder 
such as format or mode, got RuntimeError: Already borrowed. PySpark's writers 
are plain Python objects, so these calls run and each write goes through. The 
writer state is now behind a lock that is held only to copy or replace it, so 
that a request runs on its own copy.




--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to