@@ -30,32 +30,59 @@ if exist "%FWDIR%conf\spark-env.cmd" call "%FWDIR%conf\spark-env.cmd"
3030
3131rem Test that an argument was given
3232if not " x%1 " == " x" goto arg_given
33- echo Usage: run-example ^ < example-class^ > [^ < args^ > ]
33+ echo Usage: run-example ^ < example-class^ > [example-args]
34+ echo - set MASTER=XX to use a specific master
35+ echo - can use abbreviated example class name (e.g. SparkPi, mllib.LinearRegression)
3436 goto exit
3537:arg_given
3638
3739set EXAMPLES_DIR = %FWDIR% examples
3840
3941rem Figure out the JAR file that our examples were packaged into.
4042set SPARK_EXAMPLES_JAR =
41- for %%d in (" %EXAMPLES_DIR% \target\scala-%SCALA_VERSION% \spark-examples*assembly*.jar" ) do (
42- set SPARK_EXAMPLES_JAR = %%d
43+ if exist " %FWDIR% RELEASE" (
44+ for %%d in (" %FWDIR% lib\spark-examples*.jar" ) do (
45+ set SPARK_EXAMPLES_JAR = %%d
46+ )
47+ ) else (
48+ for %%d in (" %EXAMPLES_DIR% \target\scala-%SCALA_VERSION% \spark-examples*.jar" ) do (
49+ set SPARK_EXAMPLES_JAR = %%d
50+ )
4351)
4452if " x%SPARK_EXAMPLES_JAR% " == " x" (
4553 echo Failed to find Spark examples assembly JAR.
4654 echo You need to build Spark with sbt\sbt assembly before running this program.
4755 goto exit
4856)
4957
50- rem Compute Spark classpath using external script
51- set DONT_PRINT_CLASSPATH = 1
52- call " %FWDIR% bin\compute-classpath.cmd"
53- set DONT_PRINT_CLASSPATH = 0
54- set CLASSPATH = %SPARK_EXAMPLES_JAR% ;%CLASSPATH%
58+ rem Set master from MASTER environment variable if given
59+ if " x%MASTER% " == " x" (
60+ set EXAMPLE_MASTER = local[*]
61+ ) else (
62+ set EXAMPLE_MASTER = %MASTER%
63+ )
64+
65+ rem If the EXAMPLE_CLASS does not start with org.apache.spark.examples, add that
66+ set EXAMPLE_CLASS = %1
67+ set PREFIX = %EXAMPLE_CLASS:~0 ,25 %
68+ if not %PREFIX% == org.apache.spark.examples (
69+ set EXAMPLE_CLASS = org.apache.spark.examples.%EXAMPLE_CLASS%
70+ )
71+
72+ rem Get the tail of the argument list, to skip the first one. This is surprisingly
73+ rem complicated on Windows.
74+ set " ARGS = "
75+ :top
76+ shift
77+ if " %~1 " neq " " (
78+ set ARGS = %ARGS% " %~1 "
79+ goto :top
80+ )
81+ if defined ARGS set ARGS = %ARGS:~1 %
5582
56- rem Figure out where java is.
57- set RUNNER = java
58- if not " x%JAVA_HOME% " == " x" set RUNNER = %JAVA_HOME% \bin\java
83+ call " %FWDIR% bin\spark-submit.cmd" ^
84+ --master %EXAMPLE_MASTER% ^
85+ --class %EXAMPLE_CLASS% ^
86+ " %SPARK_EXAMPLES_JAR% " %ARGS%
5987
60- " %RUNNER% " -cp " %CLASSPATH% " %JAVA_OPTS% %*
6188:exit
0 commit comments