2014-12-31 15 views
37


Ich benutze CDH 5.2. Ich bin in der Lage, Spark-Shell zu verwenden, um die Befehle auszuführen. Wie kann ich die Datei (file.spark) ausführen, die Funke-Befehle enthält. Zweitens, gibt es eine Möglichkeit, die Scala-Programme in CDH 5.2 ohne sbt auszuführen/zu kompilieren?Spark: wie man Spark Datei von Spark Shell

Vielen Dank im Voraus,

Antwort

57

Um eine externe Datei von Funken Shell einfach

tun laden
:load PATH_TO_FILE 

Dies wird alles in Ihrer Datei aufrufen.

Ich habe keine Lösung für Ihre SBT Frage haben allerdings leider :-)

+1

Hallo, funktioniert dieser Befehl, wenn ich eine Datei in der lokalen Maschine habe, aber ist es möglich, diese Position als hdfs Pfad zu verweisen. hds: // localhost: 9000/file –

+0

Es funktioniert nicht für mich. Ich benutze CDH 5.7 Schnellstart VM –

7

Sie entweder sbt oder Maven verwenden können Funken Programme zu kompilieren. Fügen Sie einfach den Funken als Abhängigkeit

<repository> 
     <id>Spark repository</id> 
     <url>http://www.sparkjava.com/nexus/content/repositories/spark/</url> 
</repository> 

Und dann die Abhängigkeit Maven:

<dependency> 
     <groupId>spark</groupId> 
     <artifactId>spark</artifactId> 
     <version>1.2.0</version> 
</dependency> 

In Bezug auf eine Datei mit Funken Befehlen: Sie einfach dies tun können:

echo" 
    import org.apache.spark.sql.* 
    ssc = new SQLContext(sc) 
    ssc.sql("select * from mytable").collect 
" > spark.input 

Führen Sie nun das Befehlsskript aus:

cat spark.input | spark-shell 
+0

Downvoting auf einer scheinbar nützliche Antwort würde zumindest verdient eine Erklärung für Ihr Anliegen. – javadba

83

In Befehlszeile können Sie

spark-shell -i file.scala 

zu laufen Code benutzen, die in file.scala

+4

Danke, weil dies nicht in 'Spark Shell -h' – hbogert

+4

Ich habe den Befehl versucht, aber es führt nicht den Code aus der Datei startet stattdessen die Scala-Shell –

+1

@AlexRajKaliamoorthy Ich könnte zu spät kommen . Ich versuche nur, deinem Kommentar/deiner Frage zu helfen. Es führt jedoch aus, Sie müssen System.exit (0) am Ende des Skripts einschließen, um die Spark-Shell zu beenden – letsBeePolite

1

geschrieben Nur um den Antworten mehr Perspektive zu geben

Spark-Shell ist ein scala repel

Sie können Typ: helfen, die Liste der Operation zu sehen, die

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 
in der scala Schale möglich sind

: Last interpretieren Zeilen in einer Datei