[ 
https://issues.apache.org/jira/browse/BEAM-646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16953250#comment-16953250
 ] 

Ning Kang edited comment on BEAM-646 at 10/16/19 10:51 PM:
-----------------------------------------------------------

Hi,

This is Ning. I'm working on a project that supports InteractiveRunner 
(Python3+) when users use Beam in notebook environment.

Would apply() interception in runner still be useful as a hook for non-Beam 
related but interactivity related features such as collecting IPython/notebook 
cell information when a PTransfrom is applied?

Of course, we can also have all pipelines support interactivity by making the 
interception inside pipelines themselves. But it's unlikely that all runners 
would/could take a pipeline with interactivity logic at this moment. And those 
ipython/notebook dependencies probably shouldn't be introduced into pipeline 
itself.

Would there be any APIs that support invoking arbitrary external logic at 
different stages of building a pipeline when pipeline is completely decoupled 
from runner?

Thanks!


was (Author: ningk):
Hi,

This is Ning. I'm working a project that supports InteractiveRunner (Python3+) 
when users use Beam in notebook environment.

Would apply() interception in runner still be useful as a hook for non-Beam 
related but interactivity related features such as collecting IPython/notebook 
cell information when a PTransfrom is applied?

Of course, we can also have all pipelines support interactivity by making the 
interception inside pipelines themselves. But it's unlikely that all runners 
would/could take a pipeline with interactivity logic at this moment. And those 
ipython/notebook dependencies probably shouldn't be introduced into pipeline 
itself.

Would there be any APIs that support invoking arbitrary external logic at 
different stages of building a pipeline when pipeline is completely decoupled 
from runner?

Thanks!

> Get runners out of the apply()
> ------------------------------
>
>                 Key: BEAM-646
>                 URL: https://issues.apache.org/jira/browse/BEAM-646
>             Project: Beam
>          Issue Type: Improvement
>          Components: beam-model, sdk-java-core
>            Reporter: Kenneth Knowles
>            Assignee: Thomas Groh
>            Priority: Major
>              Labels: backwards-incompatible
>             Fix For: 0.6.0
>
>
> Right now, the runner intercepts calls to apply() and replaces transforms as 
> we go. This means that there is no "original" user graph. For portability and 
> misc architectural benefits, we would like to build the original graph first, 
> and have the runner override later.
> Some runners already work in this manner, but we could integrate it more 
> smoothly, with more validation, via some handy APIs on e.g. the Pipeline 
> object.



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

Reply via email to