[ 
https://issues.apache.org/jira/browse/BEAM-9322?focusedWorklogId=436260&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-436260
 ]

ASF GitHub Bot logged work on BEAM-9322:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 21/May/20 23:04
            Start Date: 21/May/20 23:04
    Worklog Time Spent: 10m 
      Work Description: robertwb commented on a change in pull request #11765:
URL: https://github.com/apache/beam/pull/11765#discussion_r428960780



##########
File path: sdks/python/apache_beam/transforms/ptransform.py
##########
@@ -270,11 +256,19 @@ def get_named_nested_pvalues(pvalueish):
     tagged_values = pvalueish.items()
   else:
     if isinstance(pvalueish, (pvalue.PValue, pvalue.DoOutputsTuple)):
-      yield None, pvalueish
+      # For transforms that only have a tagged PCollection as an output,
+      # propagate that tag forward.
+      if first_iteration and isinstance(pvalueish, pvalue.PValue):
+        yield pvalueish.tag, pvalueish

Review comment:
       I think this may break some google3 runners. Can you ensure that this 
imports correctly? (Could you also explain why this is needed?)




----------------------------------------------------------------
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:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 436260)
    Time Spent: 4.5h  (was: 4h 20m)

> Python SDK ignores manually set PCollection tags
> ------------------------------------------------
>
>                 Key: BEAM-9322
>                 URL: https://issues.apache.org/jira/browse/BEAM-9322
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-py-core
>            Reporter: Sam Rohde
>            Assignee: Sam Rohde
>            Priority: P1
>          Time Spent: 4.5h
>  Remaining Estimate: 0h
>
> The Python SDK currently ignores any tags set on PCollections manually when 
> applying PTransforms when adding the PCollection to the PTransform 
> [outputs|[https://github.com/apache/beam/blob/688a4ea53f315ec2aa2d37602fd78496fca8bb4f/sdks/python/apache_beam/pipeline.py#L595]].
>  In the 
> [add_output|[https://github.com/apache/beam/blob/688a4ea53f315ec2aa2d37602fd78496fca8bb4f/sdks/python/apache_beam/pipeline.py#L872]]
>  method, the tag is set to None for all PValues, meaning the output tags are 
> set to an enumeration index over the PCollection outputs. The tags are not 
> propagated to correctly which can be a problem on relying on the output 
> PCollection tags to match the user set values.
> The fix is to correct BEAM-1833, and always pass in the tags. However, that 
> doesn't fix the problem for nested PCollections. If you have a dict of lists 
> of PCollections, what should their tags be correctly set to? In order to fix 
> this, first propagate the correct tag then talk with the community about the 
> best auto-generated tags.
> Some users may rely on the old implementation, so a flag will be created: 
> "force_generated_pcollection_output_ids" and be default set to False. If 
> True, this will go to the old implementation and generate tags for 
> PCollections.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to