Tim Meehan created SPARK-61263:
----------------------------------

             Summary: Compress a plan over the server's plan compression 
threshold, as PySpark does
                 Key: SPARK-61263
                 URL: https://issues.apache.org/jira/browse/SPARK-61263
             Project: Spark
          Issue Type: Bug
          Components: Connect
    Affects Versions: connect-rust-4.3.0
            Reporter: Tim Meehan


PySpark's Connect client compresses a plan larger than the server's 
spark.connect.session.planCompression.threshold. The Rust client never 
compresses plans, so a plan over the 128 MB message limit fails, and a plan 
between the threshold and 128 MB goes over the wire uncompressed.

{code:python}
from pyspark.sql import SparkSession, functions as F

spark = SparkSession.builder.remote("sc://localhost:15002").getOrCreate()
spark.range(1).select(F.length(F.lit("x" * (150 * 1024 * 1024)))).collect()
{code}

Against an OSS Spark 4.3.0 Connect server on loopback:
* pyspark-client 4.3.0 returns the row in about 3 seconds. It reads 
spark.connect.session.planCompression.threshold from the server (10 MB on OSS 
Spark 4.3.0) and sends the plan zstd-compressed, as Plan.compressed_operation.
* spark-connect-rust fails with "[Internal error] h2 protocol error: http2 
error" (measured at 4ad36945). At 100 MB both work. At 8768cc4 no code under 
crates/ compresses a plan.



--
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