我正在使用CDH 5.2。 我可以使用spark-shell运行命令。
- 如何运行包含spark命令的文件(file.spark)。
- 在CDH 5.2中有没有不使用sbt运行/编译Scala程序的方法?
我正在使用CDH 5.2。 我可以使用spark-shell运行命令。
spark-shell -i file.scala
运行写在 file.scala
中的代码
从spark-shell加载外部文件只需执行以下操作
:load PATH_TO_FILE
这将调用您文件中的所有内容。
不过,对于您的SBT问题,我没有解决方案,很抱歉 :-)
您可以使用sbt或maven编译Spark程序,只需将Spark作为Maven依赖项添加即可。
<repository>
<id>Spark repository</id>
<url>http://www.sparkjava.com/nexus/content/repositories/spark/</url>
</repository>
然后是依赖项:
<dependency>
<groupId>spark</groupId>
<artifactId>spark</artifactId>
<version>1.2.0</version>
</dependency>
在运行使用spark命令的文件时,您可以简单地执行以下操作:
echo"
import org.apache.spark.sql.*
ssc = new SQLContext(sc)
ssc.sql("select * from mytable").collect
" > spark.input
现在运行命令脚本:
cat spark.input | spark-shell
为了更好地理解答案:
Spark-shell是一个scala repl
您可以输入:help以查看在scala shell中可能的操作列表。
scala> :help
All commands can be abbreviated, e.g., :he instead of :help.
:edit <id>|<line> edit history
:help [command] print this summary or command-specific help
:history [num] show the history (optional num is commands to show)
:h? <string> search the history
:imports [name name ...] show import history, identifying sources of names
:implicits [-v] show the implicits in scope
:javap <path|class> disassemble a file or class name
:line <id>|<line> place line(s) at the end of history
:load <path> interpret lines in a file
:paste [-raw] [path] enter paste mode or paste a file
:power enable power user mode
:quit exit the interpreter
:replay [options] reset the repl and replay all previous commands
:require <path> add a jar to the classpath
:reset [options] reset the repl to its initial state, forgetting all session entries
:save <path> save replayable session to a file
:sh <command line> run a shell command (result is implicitly => List[String])
:settings <options> update compiler options, if possible; see reset
:silent disable/enable automatic printing of results
:type [-v] <expr> display the type of an expression without evaluating it
:kind [-v] <expr> display the kind of expression's type
:warnings show the suppressed warnings from the most recent line which had any
:load 解释文件中的行
在 spark-shell
版本1.6.3
和 spark2-shell
版本2.3.0.2.6.5.179-4
上测试过,你可以直接将内容作为标准输入传递给shell,例如:
spark-shell <<< "1+1"
spark-shell < file.spark
./bin/spark-shell
:这是bin路径下spark-shell的路径
/home/fold1/spark_program.py
:这是您的Python程序所在的路径。./bin.spark-shell /home/fold1/spark_prohram.py
spark shell -h
中。 - hbogert