【发布时间】:2015-12-24 19:31:18
【问题描述】:
我是 Spark 的新手,想弄清楚如何使用 Spark shell。
查看了 Spark 的站点文档,它没有显示如何创建目录或如何在 spark shell 中查看我的所有文件。如果有人可以帮助我,我将不胜感激。
【问题讨论】:
标签: scala shell apache-spark
我是 Spark 的新手,想弄清楚如何使用 Spark shell。
查看了 Spark 的站点文档,它没有显示如何创建目录或如何在 spark shell 中查看我的所有文件。如果有人可以帮助我,我将不胜感激。
【问题讨论】:
标签: scala shell apache-spark
:q 或 :quit 命令用于退出你的 scala REPL。
【讨论】:
在这种情况下,您可以假设 Spark shell 只是一个普通的Scala REPL,因此适用相同的规则。您可以使用:help 获取可用命令的列表。
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.3.0
/_/
Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_151)
Type in expressions to have them evaluated.
Type :help for more information.
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
正如您在上面看到的,您可以使用 :sh 调用 shell 命令。例如:
scala> :sh mkdir foobar
res0: scala.tools.nsc.interpreter.ProcessResult = `mkdir foobar` (0 lines, exit 0)
scala> :sh touch foobar/foo
res1: scala.tools.nsc.interpreter.ProcessResult = `touch foobar/foo` (0 lines, exit 0)
scala> :sh touch foobar/bar
res2: scala.tools.nsc.interpreter.ProcessResult = `touch foobar/bar` (0 lines, exit 0)
scala> :sh ls foobar
res3: scala.tools.nsc.interpreter.ProcessResult = `ls foobar` (2 lines, exit 0)
scala> res3.line foreach println
line lines
scala> res3.lines foreach println
bar
foo
【讨论】:
scala> :sh ls res5: scala.tools.nsc.interpreter.ProcessResult = ls` (2 lines, exit 0)` scala> res5 foreach println <console>:12: error: value foreach is not a member of scala.tools.nsc.interpreter.ProcessResult ` res5 foreach println`span>
res5.lines foreach println
res3 foreach println 不起作用,应改为 res3.lines foreach println。
:sh cd /home/dean/bin/spark-2.3.0-bin-hadoop2.7 java.io.IOException: Cannot run program "cd": error=2, No such file or directory