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