[
https://issues.apache.org/jira/browse/BEAM-10708?focusedWorklogId=558671&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-558671
]
ASF GitHub Bot logged work on BEAM-10708:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 26/Feb/21 18:31
Start Date: 26/Feb/21 18:31
Worklog Time Spent: 10m
Work Description: KevinGG commented on pull request #14073:
URL: https://github.com/apache/beam/pull/14073#issuecomment-786819678
> I was under the impression that deepcopy "just worked" on user classes by
deep copying the attributes. Does that not work well with our types?
Deepcopy works for [nested] primitive types. Something like a PipelineOption
can be deepcopied without any issue. If a type has no copier (`__deepcopy__`)
defined and python couldn't figure out how to deepcopy it, python resorts to
the pickler. It pickles the object and then unpickle it to make a deepcopy.
Some types are not picklable, for example, an RLock. Additionally, most of the
python pipeline components are not picklable because the code disallows
pickling by overriding the `__reduce__` function. So if you deepcopy a
pipeline, nothing really is copied and you get a str.
This PR explicitly defines the copiers for different components in the
pipeline.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 558671)
Time Spent: 5h 10m (was: 5h)
> InteractiveRunner cannot execute pipeline with cross-language transform
> -----------------------------------------------------------------------
>
> Key: BEAM-10708
> URL: https://issues.apache.org/jira/browse/BEAM-10708
> Project: Beam
> Issue Type: Bug
> Components: cross-language
> Reporter: Brian Hulette
> Assignee: Ning Kang
> Priority: P2
> Time Spent: 5h 10m
> Remaining Estimate: 0h
>
> The InteractiveRunner crashes when given a pipeline that includes a
> cross-language transform.
> Here's the example I tried to run in a jupyter notebook:
> {code:python}
> p = beam.Pipeline(InteractiveRunner())
> pc = (p | SqlTransform("""SELECT
> CAST(1 AS INT) AS `id`,
> CAST('foo' AS VARCHAR) AS `str`,
> CAST(3.14 AS DOUBLE) AS `flt`"""))
> df = interactive_beam.collect(pc)
> {code}
> The problem occurs when
> [pipeline_fragment.py|https://github.com/apache/beam/blob/dce1eb83b8d5137c56ac58568820c24bd8fda526/sdks/python/apache_beam/runners/interactive/pipeline_fragment.py#L66]
> creates a copy of the pipeline by [writing it to proto and reading it
> back|https://github.com/apache/beam/blob/dce1eb83b8d5137c56ac58568820c24bd8fda526/sdks/python/apache_beam/runners/interactive/pipeline_fragment.py#L120].
> Reading it back fails because some of the pipeline is not written in Python.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)