[英]Java Class not Found Exception while doing Spark-submit Scala using sbt
这是我在Scala中编写的代码
package normalisation
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.sql.SQLContext
import org.apache.hadoop.fs.{FileSystem,Path}
object Seasonality {
val amplitude_list_c1: Array[Nothing] = Array()
val amplitude_list_c2: Array[Nothing] = Array()
def main(args: Array[String]){
val conf = new SparkConf().setAppName("Normalization")
val sc = new SparkContext(conf)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val line = "MP"
val ps = "Test"
val location = "hdfs://ipaddress/user/hdfs/{0}/ps/{1}/FS/2018-10-17".format(line,ps)
val files = FileSystem.get(sc.hadoopConfiguration ).listStatus(new Path(location))
for (each <- files) {
var ps_data = sqlContext.read.json(each)
}
println(ps_data.show())
}
我在使用sbt软件包编译时收到的错误是这里的图像
这是我的build.sbt文件
名称:=“ OV”
scalaVersion:=“ 2.11.8”
// https://mvnrepository.com/artifact/org.apache.spark/spark-core libraryDependencies + =“ org.apache.spark” %%“ spark-core”%“ 2.3.1”
// https://mvnrepository.com/artifact/org.apache.spark/spark-sql libraryDependencies + =“ org.apache.spark” %%“ spark-sql”%“ 2.3.1”
在Spark Versions> 2中,通常应该使用SparkSession
。 参见https://spark.apache.org/docs/2.3.1/api/scala/#org.apache.spark.sql.SparkSession
那你也应该能够做
val spark:SparkSession = ???
val location = "hdfs://ipaddress/user/hdfs/{0}/ps/{1}/FS/2018-10-17".format(line,ps)
spark.read.json(location)
读取目录中的所有json文件。
另外我认为您还会在另一个编译错误
for (each <- files) {
var ps_data = sqlContext.read.json(each)
}
println(ps_data.show())
ps_data
超出范围。
如果出于某种原因需要使用SparkContext
,则它确实应该在spark-core中。 您是否尝试过重新启动IDE,清理缓存等?
编辑:我只是注意到build.sbt
可能不在您sbt package
调用sbt package
的目录中,所以sbt不会接它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.