2016-11-15 2 views
0

Ich bin Anfänger zu funken und scala. Ich wollte etwas Code innerhalb eines Bash-Skripts ausführen. Ich habe den folgenden Code geschrieben.Führen Apache Spark (Scala) Code in Bash-Skript

Scala-Code wurde in einer separaten .scala Datei wie folgt geschrieben.

Scala Code:

import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.SparkConf 

object SimpleApp { 
    def main(args: Array[String]) { 
    val conf = new SparkConf().setAppName("Simple Application") 
    val sc = new SparkContext(conf) 
    println("x="+args(0),"y="+args(1)) 
    } 
} 

Dies ist der Bash-Skript, das den Apache-Funken/scala Code aufruft.

Bash-Code

#!/usr/bin/env bash 
Absize=File_size1 
AdBsize=File_size2 
for i in `seq 2 $ABsize` 
do 
    for j in `seq 2 $ADsize` 
    do 
     Abi=`sed -n ""$i"p" < File_Path1` 
     Adj=`sed -n ""$j"p" < File_Path2` 
     scala SimpleApp.scala $Abi $adj 
    done 
done 

Aber dann bekomme ich die folgenden Fehler.

Fehler:

error:object apache is not a member of package org 
import org.apache.spark.SparkContext 
     ^
error: object apache is not a member of package org 
import org.apache.spark.SparkContext._ 
     ^
error: object apache is not a member of package org 
import org.apache.spark.SparkConf 
     ^
error: not found:type SparkConf 
val conf = new SparkConf().setAppName("Simple Application")   ^
error: not found:type SparkContext 

Der obige Code funktioniert perfekt, wenn die scala Datei ohne Funken Funktion geschrieben wird (Das ist eine reine scala-Datei), aber nicht, wenn es Apache-Funken Importe.

Was wäre eine gute Möglichkeit zum Ausführen und Ausführen von diesem Bash-Skript? Muss ich Spark Shell aufrufen, um den Code auszuführen?

+3

Versuchen gesagt läuft Funken Kern Abhängigkeit in der Klasse-Pfad wie scala -classpath „* .jar“ YourFile.scala – FaigB

+0

ich den folgenden Befehl verwendet, zur Verfügung zu stellen scala -classpath einfach-project_2.11-1.0.jar SimpleApp.scala $ Abi $ adj aber immer noch gibt es einen gleichen Fehler @FaigB – Aroon

+1

Wenn Sie spark lokal verwenden im Klassenpfad jar von $ spark_home/lib/spark-core_2. 10- {Version} .jar ODER Download von https://mvnrepository.com/artifect/org.apache.spark/spark-core_2.10 und setzen Sie Klassenpfad – FaigB

Antwort

1

Funken mit Umgebungsvariablen eingerichtet und als @puhlen mit spark-submit -class SimpleApp simple-project_2.11-1.0.jar $Abi $adj