4

TL;DR : Spark シェル (ドライバー) を実行している 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"

接続し、SparkContext と sqlContext をインスタンス化します。私が実行した場合:

sqlContext.sql("show tables").show()

期待どおりにすべてのテーブルが表示されます。

ただし、テーブルからデータにアクセスしようとすると:

sqlContext.sql("select * from t1").show()

次のエラーが表示されます。

java.io.InvalidClassException: org.apache.spark.sql.catalyst.expressions.AttributeReference; local class incompatible: stream classdesc serialVersionUID = 370695178000872136, local class serialVersionUID = -8877631944444173448

完全なスタック トレース

serialVersionUIDが一致しないと表示されます。私の仮説は、問題は 2 つの異なるバージョンの spark を接続しようとしたことが原因であるというものです。私が正しい場合、何かアイデアはありますか?

4

1 に答える 1