0
我是spark和scala的新手。 我想從bash腳本中執行一些spark代碼。我寫了下面的代碼。在Bash腳本中執行Apache Spark(Scala)代碼
Scala代碼是在單獨的.scala
文件中編寫的,如下所示。
Scala代碼:
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))
}
}
這是bash腳本,調用Apache的火花/ Scala代碼。
bash代碼
#!/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
但後來我得到了以下錯誤。
錯誤:
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
上面的代碼完美地工作,如果Scala的文件沒有任何火花功能(這是一個純粹的斯卡拉文件)編寫的,但是當有Apache的火花進口失敗。
什麼是從bash腳本運行並執行此操作的好方法?我必須調用spark shell來執行代碼嗎?
嘗試告知要提供火花核心依賴於像斯卡拉-classpath類路徑「的* .jar」 YourFile.scala – FaigB
我用下面的命令 scala -classpath simple-project_2.11-1.0.jar SimpleApp.scala $ Abi $ adj 但仍然存在相同的錯誤@FaigB – Aroon
如果您在$ spark_home/lib/spark-core_2的classpath jar中使用本地spark。 10- {version} .jar或從https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10下載並放在類路徑 – FaigB