【问题标题】:Spark shell command linesSpark shell 命令行
【发布时间】:2015-12-24 19:31:18
【问题描述】:

我是 Spark 的新手,想弄清楚如何使用 Spark shell。

查看了 Spark 的站点文档,它没有显示如何创建目录或如何在 spark shell 中查看我的所有文件。如果有人可以帮助我,我将不胜感激。

【问题讨论】:

    标签: scala shell apache-spark


    【解决方案1】:

    :q:quit 命令用于退出你的 scala REPL。

    【讨论】:

    • 赞成使用红色背景,这是一个大胆的举动。
    【解决方案2】:

    在这种情况下,您可以假设 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&gt; :sh ls res5: scala.tools.nsc.interpreter.ProcessResult = ls` (2 lines, exit 0)` scala&gt; res5 foreach println &lt;console&gt;:12: error: value foreach is not a member of scala.tools.nsc.interpreter.ProcessResult ` res5 foreach println`​​span>
    • WoodChopper 只做res5.lines foreach println
    • res3 foreach println 不起作用,应改为 res3.lines foreach println
    • @HolgerBrandl 谢谢。这是一个相当古老的答案(1.x,它使用了 Scala 2.10),当时可以直接使用 foreach。已更新。
    • 那行不通。 :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
    猜你喜欢
    • 1970-01-01
    • 2016-12-10
    • 2011-06-15
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 2017-06-04
    • 2013-01-05
    • 2010-09-14
    相关资源
    最近更新 更多