[ 
https://issues.apache.org/jira/browse/SPARK-56894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Max Gekk resolved SPARK-56894.
------------------------------
    Fix Version/s: 4.3.0
       Resolution: Fixed

Issue resolved by pull request 55921
[https://github.com/apache/spark/pull/55921]

> Add vectorized Parquet BYTE_STREAM_SPLIT reader
> -----------------------------------------------
>
>                 Key: SPARK-56894
>                 URL: https://issues.apache.org/jira/browse/SPARK-56894
>             Project: Spark
>          Issue Type: Sub-task
>          Components: SQL
>    Affects Versions: 5.0.0
>            Reporter: Ismaël Mejía
>            Assignee: Ismaël Mejía
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 4.3.0
>
>
> Adds a new {{VectorizedByteStreamSplitValuesReader}} that decodes 
> BYTE_STREAM_SPLIT-encoded Parquet pages (FLOAT, DOUBLE, INT32, INT64, 
> FIXED_LEN_BYTE_ARRAY) using batch byte-gathering instead of falling back to 
> parquet-mr per-value reads.
> h3. Changes
> * *Batch byte-gathering decode*: Reads all stream bytes in bulk and 
> reassembles values by gathering the i-th byte from each of N interleaved 
> streams.
> * *Widening overrides*: {{readIntegersAsLongs}}, {{readFloatsAsDoubles}} 
> avoid intermediate narrowing.
> * *FLBA batch allocation reduction*: Avoids per-value ByteBuffer allocation 
> for FIXED_LEN_BYTE_ARRAY.
> * *FixedLenByteArrayUpdater routing*: Routes through the batch path.
> h3. Benchmark Results (GHA, AMD EPYC 7763)
> ||Type||JDK 17||JDK 21||JDK 25||
> |INT32|4.5x|3.8x|4.2x|
> |INT64|2.8x|2.0x|1.8x|
> |FLOAT|4.3x|3.6x|4.3x|
> |DOUBLE|2.7x|2.0x|1.8x|
> |readIntegersAsLongs|3.8x|3.0x|3.5x|
> |readFloatsAsDoubles|3.8x|3.2x|3.9x|
> |FLBA(12) readBinary|1.7x|1.6x|1.5x|
> PR: https://github.com/apache/spark/pull/55921
> Parent issue: https://github.com/apache/spark/issues/56011



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to