[ 
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)

Reply via email to