This is an automated email from the ASF dual-hosted git repository. zjffdu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/zeppelin.git
The following commit(s) were added to refs/heads/master by this push: new 0a27eee [ZEPPELIN-4771]. Bokeh output in IPythonInterpreter is not in correct format 0a27eee is described below commit 0a27eee0b9565c735ef94cfc1196f0b1a8928816 Author: Jeff Zhang <zjf...@apache.org> AuthorDate: Thu Apr 23 11:32:14 2020 +0800 [ZEPPELIN-4771]. Bokeh output in IPythonInterpreter is not in correct format ### What is this PR for? Without this PR, the bokeh output will is not in correct format (see below screenshot). This root cause is the output type is not correct. We should only use html when it is ir kernel for jupyter interpreter. ### What type of PR is it? [Bug Fix ] ### Todos * [ ] - Task ### What is the Jira issue? * https://issues.apache.org/jira/browse/ZEPPELIN-4771 ### How should this be tested? * CI pass ### Screenshots (if appropriate) Before  After  ### Questions: * Does the licenses files need update? No * Is there breaking changes for older versions? No * Does this needs documentation? No Author: Jeff Zhang <zjf...@apache.org> Closes #3750 from zjffdu/ZEPPELIN-4771 and squashes the following commits: da6578e0e [Jeff Zhang] [ZEPPELIN-4771]. Bokeh output in IPythonInterpreter is not in correct format --- .../apache/zeppelin/python/IPythonInterpreter.java | 2 +- .../java/org/apache/zeppelin/r/IRInterpreter.java | 2 +- .../apache/zeppelin/jupyter/JupyterKernelClient.java | 19 +++++++++++-------- .../zeppelin/jupyter/JupyterKernelInterpreter.java | 2 +- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/python/src/main/java/org/apache/zeppelin/python/IPythonInterpreter.java b/python/src/main/java/org/apache/zeppelin/python/IPythonInterpreter.java index c5527fe..8cd7fba 100644 --- a/python/src/main/java/org/apache/zeppelin/python/IPythonInterpreter.java +++ b/python/src/main/java/org/apache/zeppelin/python/IPythonInterpreter.java @@ -57,7 +57,7 @@ public class IPythonInterpreter extends JupyterKernelInterpreter { private String py4jGatewaySecret; public IPythonInterpreter(Properties properties) { - super(properties); + super("python", properties); } @Override diff --git a/rlang/src/main/java/org/apache/zeppelin/r/IRInterpreter.java b/rlang/src/main/java/org/apache/zeppelin/r/IRInterpreter.java index 24305d6..f232d7e 100644 --- a/rlang/src/main/java/org/apache/zeppelin/r/IRInterpreter.java +++ b/rlang/src/main/java/org/apache/zeppelin/r/IRInterpreter.java @@ -54,7 +54,7 @@ public class IRInterpreter extends JupyterKernelInterpreter { private SparkRBackend sparkRBackend; public IRInterpreter(Properties properties) { - super(properties); + super("ir", properties); } /** diff --git a/zeppelin-jupyter-interpreter/src/main/java/org/apache/zeppelin/jupyter/JupyterKernelClient.java b/zeppelin-jupyter-interpreter/src/main/java/org/apache/zeppelin/jupyter/JupyterKernelClient.java index 3d18df1..1065c41 100644 --- a/zeppelin-jupyter-interpreter/src/main/java/org/apache/zeppelin/jupyter/JupyterKernelClient.java +++ b/zeppelin-jupyter-interpreter/src/main/java/org/apache/zeppelin/jupyter/JupyterKernelClient.java @@ -41,7 +41,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.security.SecureRandom; import java.util.Iterator; import java.util.Properties; import java.util.concurrent.TimeUnit; @@ -66,24 +65,27 @@ public class JupyterKernelClient { private Properties properties; private InterpreterContext context; - private SecureRandom random = new SecureRandom(); + private String kernel; /** * Construct client for accessing RouteGuide server at {@code host:port}. */ - public JupyterKernelClient(String host, - int port) { - this(ManagedChannelBuilder.forAddress(host, port).usePlaintext(true), new Properties()); + public JupyterKernelClient(String host, int port, String kernel) { + this(ManagedChannelBuilder.forAddress(host, port).usePlaintext(true), new Properties(), + kernel); } /** * Construct client for accessing RouteGuide server using the existing channel. */ - public JupyterKernelClient(ManagedChannelBuilder<?> channelBuilder, Properties properties) { + public JupyterKernelClient(ManagedChannelBuilder<?> channelBuilder, + Properties properties, + String kernel) { channel = channelBuilder.build(); blockingStub = JupyterKernelGrpc.newBlockingStub(channel); asyncStub = JupyterKernelGrpc.newStub(channel); this.properties = properties; + this.kernel = kernel; } public void shutdown() throws InterruptedException { @@ -170,7 +172,8 @@ public class JupyterKernelClient { } // explicitly use html output for ir kernel in some cases. otherwise some // R packages doesn't work. e.g. googlevis - if (executeResponse.getOutput().contains("<script type=\"text/javascript\">")) { + if (kernel.equals("ir") && executeResponse.getOutput() + .contains("<script type=\"text/javascript\">")) { interpreterOutput.write("\n%html ".getBytes()); } interpreterOutput.write(executeResponse.getOutput().getBytes()); @@ -306,7 +309,7 @@ public class JupyterKernelClient { } public static void main(String[] args) { - JupyterKernelClient client = new JupyterKernelClient("localhost", 50053); + JupyterKernelClient client = new JupyterKernelClient("localhost", 50053, "python"); client.status(StatusRequest.newBuilder().build()); ExecuteResponse response = client.block_execute(ExecuteRequest.newBuilder(). diff --git a/zeppelin-jupyter-interpreter/src/main/java/org/apache/zeppelin/jupyter/JupyterKernelInterpreter.java b/zeppelin-jupyter-interpreter/src/main/java/org/apache/zeppelin/jupyter/JupyterKernelInterpreter.java index dff1900..98cf4bd 100644 --- a/zeppelin-jupyter-interpreter/src/main/java/org/apache/zeppelin/jupyter/JupyterKernelInterpreter.java +++ b/zeppelin-jupyter-interpreter/src/main/java/org/apache/zeppelin/jupyter/JupyterKernelInterpreter.java @@ -125,7 +125,7 @@ public class JupyterKernelInterpreter extends AbstractInterpreter { jupyterKernelClient = new JupyterKernelClient(ManagedChannelBuilder.forAddress("127.0.0.1", kernelPort).usePlaintext(true).maxInboundMessageSize(message_size), - getProperties()); + getProperties(), kernel); launchJupyterKernel(kernelPort); } catch (Exception e) { throw new InterpreterException("Fail to open JupyterKernelInterpreter:\n" +