You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by zj...@apache.org on 2021/06/29 03:41:31 UTC

[zeppelin] branch branch-0.9 updated: [ZEPPELIN-5423] Running %spark.conf cell seem to break placeholder #{user} from config

This is an automated email from the ASF dual-hosted git repository.

zjffdu pushed a commit to branch branch-0.9
in repository https://gitbox.apache.org/repos/asf/zeppelin.git


The following commit(s) were added to refs/heads/branch-0.9 by this push:
     new 644c379  [ZEPPELIN-5423] Running %spark.conf cell seem to break placeholder #{user} from config
644c379 is described below

commit 644c37915353d9fa152599e5d19409cc8621803a
Author: Jeff Zhang <zj...@apache.org>
AuthorDate: Wed Jun 23 23:04:16 2021 +0800

    [ZEPPELIN-5423] Running %spark.conf cell seem to break placeholder #{user} from config
    
    ### What is this PR for?
    
    The root cause is that we do context parameter replacement in zeppelin server side (RemoteInterpreter). Actually we should do it in interpreter process side. Also add tests for this.
    
    ### What type of PR is it?
    [Bug Fix]
    
    ### Todos
    * [ ] - Task
    
    ### What is the Jira issue?
    * https://issues.apache.org/jira/browse/ZEPPELIN-5423
    
    ### How should this be tested?
    * CI pass
    
    ### Screenshots (if appropriate)
    
    ### Questions:
    * Does the licenses files need update? No
    * Is there breaking changes for older versions? No
    * Does this needs documentation? No
    
    Author: Jeff Zhang <zj...@apache.org>
    
    Closes #4154 from zjffdu/ZEPPELIN-5423 and squashes the following commits:
    
    a7bbe39109 [Jeff Zhang] [ZEPPELIN-5423] Running %spark.conf cell seem to break placeholder #{user} from config
    
    (cherry picked from commit 1c47c15e2d1b47df2fc374da5308c38f68692ac8)
    Signed-off-by: Jeff Zhang <zj...@apache.org>
---
 .../java/org/apache/zeppelin/integration/SparkIntegrationTest.java | 7 +++++++
 .../org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java  | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/SparkIntegrationTest.java b/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/SparkIntegrationTest.java
index 5fefa6b..1929060 100644
--- a/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/SparkIntegrationTest.java
+++ b/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/SparkIntegrationTest.java
@@ -118,6 +118,10 @@ public abstract class SparkIntegrationTest {
     assertEquals(interpreterResult.toString(), InterpreterResult.Code.SUCCESS, interpreterResult.code());
     assertTrue(interpreterResult.toString(), interpreterResult.message().get(0).getData().contains("45"));
 
+    interpreterResult = sparkInterpreter.interpret("sc.getConf.get(\"spark.user.name\")", context);
+    assertEquals(interpreterResult.toString(), InterpreterResult.Code.SUCCESS, interpreterResult.code());
+    assertTrue(interpreterResult.toString(), interpreterResult.message().get(0).getData().contains("user1"));
+
     // test jars & packages can be loaded correctly
     interpreterResult = sparkInterpreter.interpret("import org.apache.zeppelin.interpreter.integration.DummyClass\n" +
             "import com.maxmind.geoip2._", context);
@@ -162,6 +166,7 @@ public abstract class SparkIntegrationTest {
     sparkInterpreterSetting.setProperty("zeppelin.pyspark.useIPython", "false");
     sparkInterpreterSetting.setProperty("zeppelin.spark.scala.color", "false");
     sparkInterpreterSetting.setProperty("zeppelin.spark.deprecatedMsg.show", "false");
+    sparkInterpreterSetting.setProperty("spark.user.name", "#{user}");
 
     try {
       setUpSparkInterpreterSetting(sparkInterpreterSetting);
@@ -189,6 +194,7 @@ public abstract class SparkIntegrationTest {
     sparkInterpreterSetting.setProperty("spark.driver.memory", "512m");
     sparkInterpreterSetting.setProperty("zeppelin.spark.scala.color", "false");
     sparkInterpreterSetting.setProperty("zeppelin.spark.deprecatedMsg.show", "false");
+    sparkInterpreterSetting.setProperty("spark.user.name", "#{user}");
 
     try {
       setUpSparkInterpreterSetting(sparkInterpreterSetting);
@@ -237,6 +243,7 @@ public abstract class SparkIntegrationTest {
     sparkInterpreterSetting.setProperty("spark.driver.memory", "512m");
     sparkInterpreterSetting.setProperty("zeppelin.spark.scala.color", "false");
     sparkInterpreterSetting.setProperty("zeppelin.spark.deprecatedMsg.show", "false");
+    sparkInterpreterSetting.setProperty("spark.user.name", "#{user}");
 
     try {
       setUpSparkInterpreterSetting(sparkInterpreterSetting);
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java
index a26360f..02f1b62 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java
@@ -159,7 +159,7 @@ public class RemoteInterpreter extends Interpreter {
         interpreterProcess.callRemoteFunction(client -> {
           LOGGER.info("Create RemoteInterpreter {}", getClassName());
           client.createInterpreter(getInterpreterGroup().getId(), sessionId,
-              className, (Map) getProperties(), getUserName());
+              className, (Map) properties, getUserName());
           return null;
         });
         isCreated = true;