[
https://issues.apache.org/jira/browse/SPARK-58987?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hyukjin Kwon updated SPARK-58987:
---------------------------------
Fix Version/s: 4.2.0
(was: 4.2.1)
> [spark-connect-rust] Faster parity CI, Rust coverage gate, and drop-in
> pyspark API fidelity
> -------------------------------------------------------------------------------------------
>
> Key: SPARK-58987
> URL: https://issues.apache.org/jira/browse/SPARK-58987
> Project: Spark
> Issue Type: Improvement
> Components: Project Infra
> Affects Versions: 5.0.0
> Reporter: Hyukjin Kwon
> Assignee: Hyukjin Kwon
> Priority: Major
> Labels: pull-request-available
> Fix For: 4.2.0
>
>
> Delivered together in apache/spark-connect-rust#54. Three axes:
> h2. 1. Faster parity CI (ours-only + manifest)
> Run the official sql/tests/connect suite ONLY through our Rust client,
> deselecting a checked-in manifest of known environmental failures (tests the
> reference client also fails in this single-node CI env), with a per-file
> retry for the flaky streaming-listener tests. Drops the per-file reference
> run, roughly halving the job.
> h2. 2. Rust coverage gate (>= 90%), all crates incl. pyspark-rs
> scripts/rust_coverage.sh measures merged coverage with cargo-llvm-cov (the
> instrumented extension driven by the Python drop-in suite); a rust-coverage
> CI job enforces the threshold. scripts/e2e_wrapper.py is a 124-op drop-in API
> exercise.
> h2. 3. Drop-in pyspark API fidelity (also SPARK-58998)
> The skin re-exported the Rust PyO3 classes directly and diverged from
> reference pyspark. Restored Column.isNull/isNotNull/getField; DataFrame
> where/filter(str), withColumns, hint, intersectAll, exceptAll, rollup, cube,
> sortWithinPartitions, withColumnsRenamed, colRegex, describe, summary,
> cache/persist/unpersist, explain, createOrReplaceTempView,
> dropna/fillna(dict), unpivot/melt, repartition(n,*cols), head(n), column
> attribute access, stat; SparkSession conf/read/catalog-property;
> GroupedData.pivot; Row(**kwargs); createDataFrame with DDL/StructType/Row.
> h2. 4. Core bug fixes + complete Arrow type mapping
> functions coalesce/array/concat were nullary with empty column lists -> made
> variadic. The Sort plan dropped bare (non-SortOrder) columns -> default
> ascending. Unified the Arrow decoders and completed the mapping
> (Decimal128/256, FixedSizeBinary, all int/uint widths, all timestamp units
> incl. TimestampNTZ, Time32/64, intervals, list/struct/map). All fixes in the
> Rust core, exposed in the Python drop-in.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]