Github user Leemoonsoo commented on the issue:

    https://github.com/apache/zeppelin/pull/1176
  
    z.run() currently submit paragraph into each interpreter's scheduler.
    
    Let's say there're PARAGRAPH_1, PARAGRAPH_2, PARAGRAPH_3
    
    ```
    %md
    ...
    
    %spark
    ...
    
    %sql
    ...
    ```
    
    When user execute
    
    ```
    z.run(P1)
    z.run(P2)
    z.run(P3)
    ```
    
    z.run(P1) submit a job to run P1 to scheduler of Markdown interpreter.
    z.run(P2) submit a job to run P2 to scheduler of Spark interpreter.
    z.run(P3) submit a job to run P3 to scheduler of SparkSQL interpreter.
    
    And each scheduler from each different interpreter works independently.
    That's why P1, P2, P3 runs concurrently. (and this is why 'Run all' button 
doesn't run paragraph sequentially)
    
    Then we can add synchronous option, such as
    
    ```
    val result1 = z.runSynchronously(P1)
    val result2 = z.runSynchronously(P2)
    val result3 = z.runSynchronously(P3)
    ```
    
    Then we can make sure P2 is not submitted before P1 finishes, P3 is not 
submitted before P2 finishes.
    
    My points are,
    
    - We can provide API to interpreter runs notebook or paragraph in the other 
notebook.
      So user can define workflow in programming language (i.e. scala, python, 
etc).
      It naturally gives more flexibility and power user to creates workflow, 
because programming language provides such things: conditional block, future, 
threads, and so on.
    - To provide sequential job execution, we can provide synchronous api such 
as `z.runSynchronously()`
    - In case of users, who are not familiar with programming language, want to 
creates workflow, we can create %workflow interpreter and invent new syntax or 
GUI on top of the same `z.run()` API internally. This is more modular and less 
confusing compare to run workflow with dynamic form syntax. 



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to