Skip to content

try fixing missing delta lake read class#4038

Open
derrickaw wants to merge 4 commits into
mainfrom
20260717_fixJBWorkflow
Open

try fixing missing delta lake read class#4038
derrickaw wants to merge 4 commits into
mainfrom
20260717_fixJBWorkflow

Conversation

@derrickaw

@derrickaw derrickaw commented Jul 17, 2026

Copy link
Copy Markdown
Contributor
  1. After adding add readFromDeltaLake transform #4027, the Build and Upload Python Package for Job Builder workflow wasn't passing due to
    java.lang.RuntimeException: Did not find a SchemaTransformProvider with the identifier beam:schematransform:org.apache.beam:delta_lake_read:v1
  2. We add a java build step.
  3. Passing log - https://github.com/GoogleCloudPlatform/DataflowTemplates/actions/runs/29613091395/job/87992041532

@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 38.09%. Comparing base (ad677c0) to head (728d412).

Additional details and impacted files
@@             Coverage Diff              @@
##               main    #4038      +/-   ##
============================================
+ Coverage     35.58%   38.09%   +2.51%     
+ Complexity      697      511     -186     
============================================
  Files           250      195      -55     
  Lines         17049    11759    -5290     
  Branches       1729     1176     -553     
============================================
- Hits           6067     4480    -1587     
+ Misses        10473     6914    -3559     
+ Partials        509      365     -144     
Components Coverage Δ
spanner-templates ∅ <ø> (∅)
spanner-import-export ∅ <ø> (∅)
spanner-live-forward-migration ∅ <ø> (∅)
spanner-live-reverse-replication ∅ <ø> (∅)
spanner-bulk-migration ∅ <ø> (∅)
gcs-spanner-dv ∅ <ø> (∅)
see 61 files with indirect coverage changes
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@derrickaw derrickaw changed the title try fixing missing delta lake read try fixing missing delta lake read class Jul 17, 2026
@derrickaw

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

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 configures the Delta Lake read transform to rearrange based on discovery and adds temporary test dependencies in yaml/pom.xml. It also introduces a local test loopback option in the test suite. The feedback highlights a PEP 8 violation in read_from_delta_lake_test.py where executable code is placed between import statements, which should be moved below all imports.

Comment thread python/src/test/python/job-builder-util-transforms/read_from_delta_lake_test.py Outdated
@derrickaw
derrickaw marked this pull request as ready for review July 17, 2026 22:38
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 addresses a runtime error occurring in the Build and Upload Python Package workflow, where the system failed to locate the required SchemaTransformProvider for Delta Lake reads. By enabling discovery-based rearrangement and explicitly including the missing Java dependencies in the test configuration, the build process is now able to correctly resolve and utilize the Delta Lake IO components.

Highlights

  • Delta Lake Read Fix: Enabled 'rearrange_based_on_discovery' in the Delta Lake read transformation to resolve issues with missing SchemaTransformProvider identifiers.
  • Dependency Updates: Added necessary Java dependencies (expansion-service, io-delta, and jamm) to the YAML module to support the Delta Lake read functionality during testing.
  • Test Configuration: Updated the test suite to support local loopback execution for better validation of the pipeline changes.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/upload-python-package.yml
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the 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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. 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.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

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 configures "rearrange_based_on_discovery=True" for Delta Lake reads, updates the corresponding unit tests, and adds temporary test dependencies in "yaml/pom.xml" for "beam-sdks-java-expansion-service", "beam-sdks-java-io-delta", and "jamm". The feedback points out a typo in the version number ("2.76.0" instead of "2.56.0") within the TODO comment in "yaml/pom.xml" and suggests correcting it to ensure proper cleanup.

Comment thread yaml/pom.xml
@derrickaw

Copy link
Copy Markdown
Contributor Author

R: @chamikaramj, when running the workflow, it failed with the desc above. Added a java build step as a temp workaround. Is this the best way to do this or is there a better way? Thanks

@chamikaramj chamikaramj left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@chamikaramj

Copy link
Copy Markdown
Contributor

The error indicates that the expansion service was started (through BeamJarExpansionService) but the Delta Lake SchemaTransform was not available there. Probably because "/home/runner/.apache_beam/cache/jars/beam-sdks-java-io-expansion-service-2.75.0.jar" that was used doesn't include apache/beam#39052.

@chamikaramj

Copy link
Copy Markdown
Contributor

We probably need to build a expansion-service jar that include relavent changes to https://github.com/apache/beam/blob/master/sdks/java/io/expansion-service/build.gradle (one line on top of 2.75.0) and also host that for this to work.

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.

2 participants