blog & release
2026/06/02
Apache Beam 2.74.0Vitalii Terentev
&
Yi Hu
We are happy to present the new 2.74.0 release of Beam. This release includes both improvements and new functionality. See the download page for this release.
For more information on changes in 2.74.0, check out the detailed release notes.
Highlights
- Spark 4 runner support for Java SDK (#38255).
I/Os
- IcebergIO: support declaring a table’s sort order on dynamic table creation via the new
sort_fieldsconfig (#38269). - IcebergIO: support writing with hash distribution mode, and with autosharding (#38061).
New Features / Improvements
- Capability introduces an indicator for aggregations and timers firing during a pipeline drain, allowing users and sinks to recognize and appropriately handle potentially incomplete or partial data (#36884).
- Added support for setting disk provisioned IOPS and throughput in Dataflow runner via
--diskProvisionedIopsand--diskProvisionedThroughputMibpspipeline options (Java/Go/Python) (#38349). - TriggerStateMachineRunner changes from BitSetCoder to SentinelBitSetCoder to encode finished bitset. SentinelBitSetCoder and BitSetCoder are state compatible. Both coders can decode encoded bytes from the other coder (#38139).
- (Python) Added type alias for with_exception_handling to be used for typehints. (#38173).
- (Java) BatchElements transform for Java SDK (#38369)
- Added plugin mechanism to support different Lineage implementations (Java) (#36790).
- (Python) Supported Python user type in Beam SQL. For example, SQL statements like
SELECT some_field from PCOLLECTIONcan now operate a PCollection of Beam Row containing pickable Python user type (#20738). - (Python) Introduced
beam.coders.registry.register_rowas preferred API to register a named tuple or dataclass with a Beam Row. At pipelne runtime, the original type associated with the registered row are preserved across the serialization boundary (#38108).
Breaking Changes
- (Python) Made Beartype the default fallback type checking tool. This can be disabled with the
--disable_beartypepipeline option. (#38275)
Deprecations
Bugfixes
- Fixed BigQueryEnrichmentHandler batch mode dropping earlier requests when multiple requests share the same enrichment key (Python) (#38035).
- Added
max_batch_duration_secspassthrough support in Python Enrichment BigQuery and CloudSQL handlers so batching duration can be forwarded toBatchElements(#38243).
According to git shortlog, the following people contributed to the 2.74.0 release. Thank you to all contributors!
Abdelrahman Ibrahim, Ahmed Abualsaud, Andrew Crites, Andrew Kabas, Arran Cudbard-Bell, Arun Pandian, Asish Kumar, Bentsi Leviav, Blake Jones, Bruno Volpato, Chris Jordan, Danny McCormick, Deji Ibrahim, Derrick Williams, Elia LIU, Ganesh Sivakumar, Jack McCluskey, Kenneth Knowles, Lalit Yadav, M Junaid Shaukat, Matej Aleksandrov, Prabhnoor Singh, Radek Stankiewicz, Radosław Stankiewicz, Reuven Lax, RuiLong J., Sam Whittle, Shunping Huang, Subramanya V, Tarun Annapareddy, Tobias Kaymak, TongruiLi, Valentyn Tymofieiev, Vitaly Terentyev, XQ Hu, Yi Hu, ZIHAN DAI, apanich, bambadiouf1, chenxuesdu, claudevdm, harshadkhetpal, johnjcasey, parveensania, tianz101

