我正在使用 Spark 1.3 并且能够创建 Spark 上下文。当我尝试使用 CassandraSQL 上下文访问 Cassandra DB 时。我收到以下错误。
线程“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 执行相关的文档 https://spark.apache.org/docs/1.2.0/api/java/index.html?org.apache.spark.sql.execution在spark 1.3版本中。有什么想法吗?
最佳答案
首先,如果您查看 Cassandra 自述文件,您会发现它们还不支持 1.3。我相信他们会接受 PR :)
现在,进入问题的关键;他们使用包私有(private)部分,因此很容易发生这些类型的重大更改。如果你看SparkStrategies in the 1.2 branch ,您将在底部看到 CommandStrategy
。然而,在 SparkStrategies 1.3 ,最后一个对象变成了DDLStrategy
,乍一看根本就不太一样。所以,他们可能已经完全删除了这个。您最好的选择是向 Cassandra 连接器项目报告此问题并等待 1.3 的官方支持
关于sql - Spark 1.3 中未找到命令策略类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29259029/