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