【发布时间】:2016-04-30 09:53:46
【问题描述】:
我正在尝试在 IntelliJ 15 中使用 Scala 运行这个简单的 Spark 程序。 代码运行良好,直到它尝试执行与创建新 SparkConf 对象相关的行:
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkContext, SparkConf}
object Driver {
//val sparkMaster:String = "spark://local:7077"
val sparkMaster:String = "local"
val csvPath:String = "/Users/mbrown/src/data/csv/titanic/test.csv"
def main(args:Array[String]):Unit={
println("Running within Driver.main().....")
val logFile:String = "log.txt"
val conf = new SparkConf().setAppName("Testing DFrame joins...").setMaster(sparkMaster)
val sc = new SparkContext(conf)
val csvFileRDD = sc.textFile(csvPath).cache()
val numAs:RDD[String] = csvFileRDD.filter(x => x.contains("a"))
val numBs:RDD[String] = csvFileRDD.filter(x => x.contains("b"))
println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
System.exit(0)
}
}
这是我的 build.gradle 文件: 组“排列” 版本“1.0-SNAPSHOT”
apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'scala'
//sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.3.11'
compile 'com.google.guava:guava:19.0'
compile 'org.apache.spark:spark-core_2.10:1.4.1'
compile 'org.apache.spark:spark-assembly_2.10:1.1.0'
compile 'org.apache.spark:spark-mllib_2.10:1.4.0'
compile 'org.apache.spark:spark-sql_2.10:1.4.1'
compile 'org.apache.hadoop:hadoop-common:2.7.1'
//testCompile group: 'junit', name: 'junit', version: '4.11'
}
奇怪的是......当我使用 Spark 的 Java API 编写具有类似集合的 Spark 代码时......我没有遇到这个问题。
这是我的输出和错误:
Running within Driver.main().....
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
16/01/23 17:06:30 INFO SparkContext: Running Spark version 1.3.0
16/01/23 17:06:31 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration$DeprecationDelta
at org.apache.hadoop.mapreduce.util.ConfigUtil.addDeprecatedKeys(ConfigUtil.java:54)
有什么想法吗?
【问题讨论】:
-
您的环境中似乎存在一些问题。显示的依赖项是
spark-core_2.10:1.4.1,但控制台显示INFO SparkContext: Running Spark version 1.3.0。似乎您的集群和代码正在使用 2 个不同版本的 Spark 编译和执行 -
我认为你是对的。我删除了项目并重新创建了它。现在可以了。我不知道发生了什么。之前配置中的设置完全相同。感谢您的帮助!
标签: java scala hadoop intellij-idea apache-spark