-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Ensure consistent behavior between streaming and batch order window elements #36661
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Summary of ChangesHello @shunping, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request aims to standardize the behavior and output format of windowed elements within the Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
911cf70 to
51ae038
Compare
51ae038 to
c372dbe
Compare
|
Checks are failing. Will not request review until checks are succeeding. If you'd like to override that behavior, comment |
|
R: @liferoad |
|
/gemini review |
|
Stopping reviewer notifications for this pull request: review requested by someone other than the bot, ceding control. If you'd like to restart, comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request brings several good improvements to OrderedWindowElements. It aligns the streaming output format with the batch version, fixes an issue with calculating the start of sliding windows to prevent missing some windows, and correctly updates timestamps when filling gaps at the beginning of windows. The changes look solid and the tests have been updated accordingly.
I've added two comments:
- A suggestion to refactor the timestamp calculation logic in
streaming.pyto useTimestampandDurationobjects for better precision and clarity. - A critical fix for
test_slide_intervalinstreaming_test.py, which is missing a necessary transform to convertTimestampobjects to integers before assertion, causing the test to fail.
sdks/python/apache_beam/examples/cookbook/ordered_window_elements/streaming.py
Outdated
Show resolved
Hide resolved
| duration: DurationTypes, | ||
| slide_interval: DurationTypes, | ||
| offset: TimestampTypes, | ||
| offset: DurationTypes, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks like a break change to me. Could we keep both like offset: Union[TimestampTypes, DurationTypes]?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The transform is part of an example, so it won't matter if it is a breaking change.
This is to fix the offset type, as it should be a Duration.
((window_start, window_end), [(Timestamp, element) ...])