aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorJeff Zhang <zjffdu@apache.org>2016-08-31 00:20:41 -0700
committerFelix Cheung <felixcheung@apache.org>2016-08-31 00:20:41 -0700
commitfa6347938fc1c72ddc03a5f3cd2e929b5694f0a6 (patch)
tree7fc3cab4dc91e6b4ff04d6f88e6cddb1798a2944 /launcher
parentd92cd227cf245be9ab8f9bce714386f8283a97cb (diff)
downloadspark-fa6347938fc1c72ddc03a5f3cd2e929b5694f0a6.tar.gz
spark-fa6347938fc1c72ddc03a5f3cd2e929b5694f0a6.tar.bz2
spark-fa6347938fc1c72ddc03a5f3cd2e929b5694f0a6.zip
[SPARK-17178][SPARKR][SPARKSUBMIT] Allow to set sparkr shell command through --conf
## What changes were proposed in this pull request? Allow user to set sparkr shell command through --conf spark.r.shell.command ## How was this patch tested? Unit test is added and also verify it manually through ``` bin/sparkr --master yarn-client --conf spark.r.shell.command=/usr/local/bin/R ``` Author: Jeff Zhang <zjffdu@apache.org> Closes #14744 from zjffdu/SPARK-17178.
Diffstat (limited to 'launcher')
-rw-r--r--launcher/src/main/java/org/apache/spark/launcher/SparkLauncher.java2
-rw-r--r--launcher/src/main/java/org/apache/spark/launcher/SparkSubmitCommandBuilder.java3
-rw-r--r--launcher/src/test/java/org/apache/spark/launcher/SparkSubmitCommandBuilderSuite.java18
3 files changed, 22 insertions, 1 deletions
diff --git a/launcher/src/main/java/org/apache/spark/launcher/SparkLauncher.java b/launcher/src/main/java/org/apache/spark/launcher/SparkLauncher.java
index 7b7a7bf57b..ea56214d23 100644
--- a/launcher/src/main/java/org/apache/spark/launcher/SparkLauncher.java
+++ b/launcher/src/main/java/org/apache/spark/launcher/SparkLauncher.java
@@ -68,6 +68,8 @@ public class SparkLauncher {
static final String PYSPARK_PYTHON = "spark.pyspark.python";
+ static final String SPARKR_R_SHELL = "spark.r.shell.command";
+
/** Logger name to use when launching a child process. */
public static final String CHILD_PROCESS_LOGGER_NAME = "spark.launcher.childProcLoggerName";
diff --git a/launcher/src/main/java/org/apache/spark/launcher/SparkSubmitCommandBuilder.java b/launcher/src/main/java/org/apache/spark/launcher/SparkSubmitCommandBuilder.java
index f6da644e4c..29c6d82cdb 100644
--- a/launcher/src/main/java/org/apache/spark/launcher/SparkSubmitCommandBuilder.java
+++ b/launcher/src/main/java/org/apache/spark/launcher/SparkSubmitCommandBuilder.java
@@ -336,7 +336,8 @@ class SparkSubmitCommandBuilder extends AbstractCommandBuilder {
join(File.separator, sparkHome, "R", "lib", "SparkR", "profile", "shell.R"));
List<String> args = new ArrayList<>();
- args.add(firstNonEmpty(System.getenv("SPARKR_DRIVER_R"), "R"));
+ args.add(firstNonEmpty(conf.get(SparkLauncher.SPARKR_R_SHELL),
+ System.getenv("SPARKR_DRIVER_R"), "R"));
return args;
}
diff --git a/launcher/src/test/java/org/apache/spark/launcher/SparkSubmitCommandBuilderSuite.java b/launcher/src/test/java/org/apache/spark/launcher/SparkSubmitCommandBuilderSuite.java
index 16e5a22401..ad2e7a70c4 100644
--- a/launcher/src/test/java/org/apache/spark/launcher/SparkSubmitCommandBuilderSuite.java
+++ b/launcher/src/test/java/org/apache/spark/launcher/SparkSubmitCommandBuilderSuite.java
@@ -173,6 +173,24 @@ public class SparkSubmitCommandBuilderSuite extends BaseSuite {
}
@Test
+ public void testSparkRShell() throws Exception {
+ List<String> sparkSubmitArgs = Arrays.asList(
+ SparkSubmitCommandBuilder.SPARKR_SHELL,
+ "--master=foo",
+ "--deploy-mode=bar",
+ "--conf", "spark.r.shell.command=/usr/bin/R");
+
+ Map<String, String> env = new HashMap<>();
+ List<String> cmd = buildCommand(sparkSubmitArgs, env);
+ assertEquals("/usr/bin/R", cmd.get(cmd.size() - 1));
+ assertEquals(
+ String.format(
+ "\"%s\" \"foo\" \"%s\" \"bar\" \"--conf\" \"spark.r.shell.command=/usr/bin/R\" \"%s\"",
+ parser.MASTER, parser.DEPLOY_MODE, SparkSubmitCommandBuilder.SPARKR_SHELL_RESOURCE),
+ env.get("SPARKR_SUBMIT_ARGS"));
+ }
+
+ @Test
public void testExamplesRunner() throws Exception {
List<String> sparkSubmitArgs = Arrays.asList(
SparkSubmitCommandBuilder.RUN_EXAMPLE,