aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--launcher/src/main/java/org/apache/spark/launcher/SparkSubmitCommandBuilder.java47
-rw-r--r--launcher/src/test/java/org/apache/spark/launcher/SparkSubmitCommandBuilderSuite.java13
2 files changed, 41 insertions, 19 deletions
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 76897c4f75..824500d980 100644
--- a/launcher/src/main/java/org/apache/spark/launcher/SparkSubmitCommandBuilder.java
+++ b/launcher/src/main/java/org/apache/spark/launcher/SparkSubmitCommandBuilder.java
@@ -107,28 +107,37 @@ class SparkSubmitCommandBuilder extends AbstractCommandBuilder {
SparkSubmitCommandBuilder(List<String> args) {
this.allowsMixedArguments = false;
-
+ this.sparkArgs = new ArrayList<>();
boolean isExample = false;
List<String> submitArgs = args;
- if (args.size() > 0 && args.get(0).equals(PYSPARK_SHELL)) {
- this.allowsMixedArguments = true;
- appResource = PYSPARK_SHELL;
- submitArgs = args.subList(1, args.size());
- } else if (args.size() > 0 && args.get(0).equals(SPARKR_SHELL)) {
- this.allowsMixedArguments = true;
- appResource = SPARKR_SHELL;
- submitArgs = args.subList(1, args.size());
- } else if (args.size() > 0 && args.get(0).equals(RUN_EXAMPLE)) {
- isExample = true;
- submitArgs = args.subList(1, args.size());
- }
- this.sparkArgs = new ArrayList<>();
- this.isExample = isExample;
+ if (args.size() > 0) {
+ switch (args.get(0)) {
+ case PYSPARK_SHELL:
+ this.allowsMixedArguments = true;
+ appResource = PYSPARK_SHELL;
+ submitArgs = args.subList(1, args.size());
+ break;
+
+ case SPARKR_SHELL:
+ this.allowsMixedArguments = true;
+ appResource = SPARKR_SHELL;
+ submitArgs = args.subList(1, args.size());
+ break;
+
+ case RUN_EXAMPLE:
+ isExample = true;
+ submitArgs = args.subList(1, args.size());
+ }
- OptionParser parser = new OptionParser();
- parser.parse(submitArgs);
- this.printInfo = parser.infoRequested;
+ this.isExample = isExample;
+ OptionParser parser = new OptionParser();
+ parser.parse(submitArgs);
+ this.printInfo = parser.infoRequested;
+ } else {
+ this.isExample = isExample;
+ this.printInfo = true;
+ }
}
@Override
@@ -147,7 +156,7 @@ class SparkSubmitCommandBuilder extends AbstractCommandBuilder {
List<String> args = new ArrayList<>();
SparkSubmitOptionParser parser = new SparkSubmitOptionParser();
- if (!allowsMixedArguments) {
+ if (!allowsMixedArguments && !printInfo) {
checkArgument(appResource != null, "Missing application resource.");
}
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 c16f46a360..ffe11bc51b 100644
--- a/launcher/src/test/java/org/apache/spark/launcher/SparkSubmitCommandBuilderSuite.java
+++ b/launcher/src/test/java/org/apache/spark/launcher/SparkSubmitCommandBuilderSuite.java
@@ -59,6 +59,19 @@ public class SparkSubmitCommandBuilderSuite extends BaseSuite {
}
@Test
+ public void testCliHelpAndNoArg() throws Exception {
+ List<String> helpArgs = Arrays.asList(parser.HELP);
+ Map<String, String> env = new HashMap<>();
+ List<String> cmd = buildCommand(helpArgs, env);
+ assertTrue("--help should be contained in the final cmd.", cmd.contains(parser.HELP));
+
+ List<String> sparkEmptyArgs = Collections.emptyList();
+ cmd = buildCommand(sparkEmptyArgs, env);
+ assertTrue("org.apache.spark.deploy.SparkSubmit should be contained in the final cmd of empty input.",
+ cmd.contains("org.apache.spark.deploy.SparkSubmit"));
+ }
+
+ @Test
public void testCliParser() throws Exception {
List<String> sparkSubmitArgs = Arrays.asList(
parser.MASTER,