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:09 UTC

[zeppelin] branch master 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 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 1c47c15  [ZEPPELIN-5423] Running %spark.conf cell seem to break placeholder #{user} from config
1c47c15 is described below

commit 1c47c15e2d1b47df2fc374da5308c38f68692ac8
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
---
 .../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;