Skip to content

Conversation

grundprinzip
Copy link
Contributor

What changes were proposed in this pull request?

Cherry-Pick: #52090

This PR adds a new method in ArrowConverters that allows properly decoding an Arrow IPC stream, which can contain multiple record batches. All of the other methods can only deal with message streams that contain exactly one record batch.

Why are the changes needed?

Previously, when an Arrow IPC stream contained multiple record batches, only the first batch would be processed and the remaining batches would be ignored. This resulted in data loss and incorrect results when working with Arrow data that was serialized as a single stream with multiple batches.

Does this PR introduce any user-facing change?

Yes. This fixes a data correctness issue where users would lose data when processing Arrow streams with multiple batches. The behavior change is that all batches in a stream are now correctly processed instead of only the first one.

How was this patch tested?

Added comprehensive test cases.

Was this patch authored or co-authored using generative AI tooling?

Tests Generated-by: Claude Code

🤖 Generated with Claude Code

Closes #52090 from grundprinzip/SPARK-53342.

Authored-by: Martin Grund [email protected]

…hes in single IPC stream

### What changes were proposed in this pull request?

This PR adds a new method in ArrowConverters that allows properly decoding an Arrow IPC stream, which can contain multiple record batches. All of the other methods can only deal with message streams that contain exactly one record batch.

### Why are the changes needed?

Previously, when an Arrow IPC stream contained multiple record batches, only the first batch would be processed and the remaining batches would be ignored. This resulted in data loss and incorrect results when working with Arrow data that was serialized as a single stream with multiple batches.

### Does this PR introduce _any_ user-facing change?

Yes. This fixes a data correctness issue where users would lose data when processing Arrow streams with multiple batches. The behavior change is that all batches in a stream are now correctly processed instead of only the first one.

### How was this patch tested?

Added comprehensive test cases.

### Was this patch authored or co-authored using generative AI tooling?

Tests Generated-by: Claude Code

🤖 Generated with [Claude Code](https://claude.ai/code)

Closes apache#52090 from grundprinzip/SPARK-53342.

Authored-by: Martin Grund <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
@dongjoon-hyun dongjoon-hyun changed the title [SPARK-53342][SQL] Fix Arrow converter to handle multiple record batches in single IPC stream [SPARK-53342][SQL][3.5] Fix Arrow converter to handle multiple record batches in single IPC stream Aug 26, 2025
@dongjoon-hyun
Copy link
Member

Although it looks irrelevant, could you re-trigger the Connect tests to make it sure, @grundprinzip ?

Screenshot 2025-08-27 at 20 43 40

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants