apache / apache/beam

Java transform executed as Python transform?

Open
#20,311 0 comments 0 reactions 0 assignees View on GitHub
bug flink jobserver P3 runners
Dominant language
Java
Stars
8.7k
Forks
4.7k
Avg merge
1d 20h
Merged PRs (30d)
196

Description

Hey, I created a transform method in Java and now I want to use it in Python using Cross-language. I got pretty stuck with the following problem:

*p*

*| GenerateSequence(...)*

*|ExternalTransform(...) =\> is working like a charm*

 

 *p*

*| Create(...)*

*| ExternalTransform(...) =\> getting assert pardo_payload.do_fn.urn \== python_urns.PICKLED_DOFN_INFO*

Based on [https://www.mail-archive.com/user@beam.apache.org/msg04887.html](https://www.mail-archive.com/user@beam.apache.org/msg04887.html)

it seems like a Create transform is being registered as a Java transform but executed as Python transform. 

 

Traceback (most recent call last): File "/Users/urban/projects/beam/sdks/python/apache_beam/io/external/snowflake_test.py", line 92, in test_snowflake_write_read self.run_write() File "/Users/urban/projects/beam/sdks/python/apache_beam/io/external/snowflake_test.py", line 129, in run_write expansion_service=self.expansion_service, File "/Users/urban/projects/beam/sdks/python/apache_beam/pipeline.py", line 528, in __exit__ self.run().wait_until_finish() File "/Users/urban/projects/beam/sdks/python/apache_beam/testing/test_pipeline.py", line 112, in run False if self.not_use_test_runner_api else test_runner_api)) File "/Users/urban/projects/beam/sdks/python/apache_beam/pipeline.py", line 501, in run self._options).run(False) File "/Users/urban/projects/beam/sdks/python/apache_beam/pipeline.py", line 858, in from_runner_api p.transforms_stack = [context.transforms.get_by_id(root_transform_id)] File "/Users/urban/projects/beam/sdks/python/apache_beam/runners/pipeline_context.py", line 103, in get_by_id self._id_to_proto[id], self._pipeline_context) File "/Users/urban/projects/beam/sdks/python/apache_beam/pipeline.py", line 1231, in from_runner_api part = context.transforms.get_by_id(transform_id) File "/Users/urban/projects/beam/sdks/python/apache_beam/runners/pipeline_context.py", line 103, in get_by_id self._id_to_proto[id], self._pipeline_context) File "/Users/urban/projects/beam/sdks/python/apache_beam/pipeline.py", line 1231, in from_runner_api part = context.transforms.get_by_id(transform_id) File "/Users/urban/projects/beam/sdks/python/apache_beam/runners/pipeline_context.py", line 103, in get_by_id self._id_to_proto[id], self._pipeline_context) File "/Users/urban/projects/beam/sdks/python/apache_beam/pipeline.py", line 1231, in from_runner_api part = context.transforms.get_by_id(transform_id) File "/Users/urban/projects/beam/sdks/python/apache_beam/runners/pipeline_context.py", line 103, in get_by_id self._id_to_proto[id], self._pipeline_context) File "/Users/urban/projects/beam/sdks/python/apache_beam/pipeline.py", line 1231, in from_runner_api part = context.transforms.get_by_id(transform_id) File "/Users/urban/projects/beam/sdks/python/apache_beam/runners/pipeline_context.py", line 103, in get_by_id self._id_to_proto[id], self._pipeline_context) File "/Users/urban/projects/beam/sdks/python/apache_beam/pipeline.py", line 1170, in from_runner_api transform = ptransform.PTransform.from_runner_api(proto, context) File "/Users/urban/projects/beam/sdks/python/apache_beam/transforms/ptransform.py", line 685, in from_runner_api context) File "/Users/urban/projects/beam/sdks/python/apache_beam/transforms/core.py", line 1380, in from_runner_api_parameter assert pardo_payload.do_fn.urn \== python_urns.PICKLED_DOFN_INFO AssertionError

 

 

Imported from Jira [BEAM-10020](https://issues.apache.org/jira/browse/BEAM-10020). Original Jira may contain additional context.
Reported by: purbanow.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.