我正在尝试通过java应用程序连接到远程系统上的spark master
我正在使用
<dependency> <!-- Spark dependency -->
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.0.1</version>
</dependency>
和代码
{
SparkSession sparkSession = SparkSession.builder().
master("spark://ip:7077")
.appName("spark session example")
.getOrCreate();
JavaSparkContext sc = new JavaSparkContext(sparkSession.sparkContext());
}
得到
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
at org.apache.spark.sql.SparkSession$Builder.config(SparkSession.scala:713)
at org.apache.spark.sql.SparkSession$Builder.master(SparkSession.scala:766)
at com.mobelisk.spark.JavaSparkPi.main(JavaSparkPi.java:9)
如果我换成
<dependency> <!-- Spark dependency -->
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
**<version>2.0.1</version>**
</dependency>
在同一个程序上
原因:java.lang.runtimeexception:java.io.invalidclassexception:org.apache.spark.rpc.netty.requestmessage;本地类不兼容:流classdesc serialversionuid=-222198670703231007,本地类serialversionuid=-5447855329526097695
遥控器上的Spark壳
spark上下文可用作“sc”(master=local[*],app id=local-1477561433881)。spark会话可用作“spark”。欢迎使用2.0.1版//
使用scala版本2.11.8(java hotspot(tm)64位服务器虚拟机,java 1.8.0\u 101)键入表达式以进行计算。键入:有关详细信息的帮助。
由于我对这一切都很陌生,我无法在程序中找出问题所在
2条答案
按热度按时间fnvucqvd1#
此spark版本不匹配:
在项目中使用2.10。
群集使用2.11
将依赖项更新为2.11。
k3fezbri2#
我想出来了,把这个贴出来,以防有人会采用类似的方法。
我补充道
它与scala library 2.10.6一起提供
但在spark-core中已经存在scala库2.11.8
所以我不得不把前面的排除在外
现在一切正常