fix!: Address the series input type issue in bigframes functions #2123
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The primary issue is the type recognition issue when a UDF uses a Series type hint, since the underlying serialization process converts the input series into a string.
Solutions implemented:
Managed Functions: Solved by adding
from __future__ import annotations, which enables the postponed evaluation of type annotations, preventing an eager runtime type error.Remote Functions: Solved by enforcing pandas.Series as the required input type hint. This is because the cloudpickle used in remote function can recognize pandas series since the later serialization is between string and pandas series, not bigframes series.
In general, this PR improves the robustness of bigframes functions and prevents a potential type error during serialization.
Fixes b/445182819 🦕
BEGIN_COMMIT_OVERRIDE
BREAKING CHANGE: argument type change.
Release-As: 2.25.0
END_COMMIT_OVERRIDE