我正在使用spark 1.3并且能够创建spark上下文。当我尝试使用CassandraSQL上下文访问Cassandra数据库时。我得到以下错误。
线程“main”中的异常java.lang.NoClassDefFoundError:org / apache / spark / sql / execution / SparkStrategies $ CommandStrategy 在org.apache.spark.sql.cassandra.CassandraSQLContext $$ anon $ 1.(CassandraSQLContext.scala:67) 在org.apache.spark.sql.cassandra.CassandraSQLContext。(CassandraSQLContext.scala:64) 在SparkSample $ .main(SparkSample.scala:28) 在SparkSample.main(SparkSample.scala)
我使用Datastax的spark-cassandra连接器。此外,我无法看到任何与SQL执行相关的文档 火花1.3版本中的https://spark.apache.org/docs/1.2.0/api/java/index.html?org.apache.spark.sql.execution。有什么想法吗?
答案 0 :(得分:2)
首先,如果你看一下Cassandra自述文件,你会发现他们还不支持1.3。我相信他们会接受公关公司:)
现在,问题的关键;他们正在使用包装私人物品,因此他们容易发生这些类型的重大变化。如果您查看SparkStrategies in the 1.2 branch,您会在底部看到CommandStrategy
。但是,在SparkStrategies 1.3中,最后一个对象变为DDLStrategy
,一眼看上去甚至看起来都不一样。所以,他们可能完全取消了这一点。最好的办法是向Cassandra连接器项目报告,并等待1.3