从不同 Spark 版本访问 Spark-Shell

mat*_*usr 5 apache-spark cloudera-cdh apache-spark-sql apache-spark-standalone

TL;DR:运行 Spark-Shell(驱动程序)的 Spark 是否绝对有必要具有与 Spark 主版本完全相同的版本?

我正在使用Spark 1.5.0通过 Spark-shell连接到Spark 1.5.0-cdh5.5.0 :

spark-shell --master spark://quickstart.cloudera:7077 --conf "spark.executor.memory=256m"
Run Code Online (Sandbox Code Playgroud)

它可以很好地连接、实例化 SparkContext 和 sqlContext。如果我运行:

sqlContext.sql("show tables").show()
Run Code Online (Sandbox Code Playgroud)

它按预期显示了我的所有表格。

但是,如果我尝试访问表中的数据:

sqlContext.sql("select * from t1").show()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

java.io.InvalidClassException: org.apache.spark.sql.catalyst.expressions.AttributeReference; local class incompatible: stream classdesc serialVersionUID = 370695178000872136, local class serialVersionUID = -8877631944444173448
Run Code Online (Sandbox Code Playgroud)

完整的堆栈跟踪

它说serialVersionUID不匹配。我的假设是问题是由于尝试连接两个不同版本的 Spark 引起的。如果我是对的,有什么想法吗?