What happens - NoSuchMethodError: com.datastax.driver.core.ResultSet.fetchMoreResults
What happens - NoSuchMethodError: com.datastax.driver.core.ResultSet.fetchMoreResults
cassandra-connector-assembly-2.0.0
从 github
项目构建。
与Scala 2.11.8
、cassandra-driver-core-3.1.0
sc.cassandraTable("mykeyspace", "mytable").select("something").where("key=?", key).mapPartitions(par => {
par.map({ row => (row.getString("something"), 1 ) })
})
.reduceByKey(_ + _).collect().foreach(println)
相同的工作可以很好地读取较少的海量数据
java.lang.NoSuchMethodError: com.datastax.driver.core.ResultSet.fetchMoreResults()Lshade/com/datastax/spark/connector/google/common/util/concurrent/ListenableFuture;
at com.datastax.spark.connector.rdd.reader.PrefetchingResultSetIterator.maybePrefetch(PrefetchingResultSetIterator.scala:26)
at com.datastax.spark.connector.rdd.reader.PrefetchingResultSetIterator.next(PrefetchingResultSetIterator.scala:39)
at com.datastax.spark.connector.rdd.reader.PrefetchingResultSetIterator.next(PrefetchingResultSetIterator.scala:17)
at scala.collection.Iterator$$anon.next(Iterator.scala:409)
at scala.collection.Iterator$$anon.next(Iterator.scala:409)
at scala.collection.Iterator$$anon.next(Iterator.scala:444)
at com.datastax.spark.connector.util.CountingIterator.next(CountingIterator.scala:16)
at scala.collection.Iterator$$anon.next(Iterator.scala:409)
at org.apache.spark.util.collection.ExternalSorter.insertAll(ExternalSorter.scala:194)
at org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:63)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:79)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:47)
at org.apache.spark.scheduler.Task.run(Task.scala:85)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:274)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
任何人都可以建议或指出这个问题,以及可能的解决方案吗?
问题已通过从 spark/jars/
中删除 cassandra-driver-core-3.1.0-shaded.jar 得到解决
一个主题java 重复类 冲突 问题?!
如果涉及任何重复的 jar,需要确认是否包含所有 jar。
上述解决方案只是其中一种情况
与 Cassandra 驱动核心冲突
libraryDependencies += "com.datastax.spark" % "spark-cassandra-connector_2.11" % "2.0.0-M3"
引入。
如果你进入 ~/.ivy2/cache/com.datastax.spark/spark-cassandra-connector_2.11 你会发现一个名为 ivy-2.0.0-M3.xml
的文件
在该文件中,依赖项是
com.datastax.cassandra" name="cassandra-driver-core" rev="3.0.2" force="true"
请注意,它是 3.0.2 版的 Cassandra 驱动程序核心,它被更新的驱动程序核心超越。
恰好the latest source on Github does not show a implementation for fetchMoreResults继承自接口PagingIterable
如果您在 Github 上将 Git 版本回滚到 3.0.x,您会发现
public ListenableFuture<ResultSet> fetchMoreResults();
所以看起来最新的 Cassandra 核心驱动程序是不完整的。或者我可能会遗漏一些东西。希望这有帮助。
tl;博士;删除最新的驱动程序并使用嵌入在 spark cassandra 连接器中的驱动程序。
有同样的问题
项目中有两个依赖项,它们都有 cassandra-driver-core
作为依赖项
spark-cassandra-connector_2.11-2.0.0-M3
&
job-server-api_2.10-0.8.0-SNAPSHOT
spark-cassandra-connecter 预期 ResultSet.fetchMoreResults
具有不同的 return 类型,因为其 shading of guava
预期。 shade.com.datastax.spark.connector.google.common.util.concurrent.ListenableFuture
找到了。
com.google.common.util.concurrent.ListenableFuture
切换到 unshaded version of cassandra-connector 以更正问题
对于所有这些问题 运行 下面的命令并检查是否存在任何重叠的依赖关系 -
mvn dependency:tree
cassandra-connector-assembly-2.0.0
从 github
项目构建。
与Scala 2.11.8
、cassandra-driver-core-3.1.0
sc.cassandraTable("mykeyspace", "mytable").select("something").where("key=?", key).mapPartitions(par => {
par.map({ row => (row.getString("something"), 1 ) })
})
.reduceByKey(_ + _).collect().foreach(println)
相同的工作可以很好地读取较少的海量数据
java.lang.NoSuchMethodError: com.datastax.driver.core.ResultSet.fetchMoreResults()Lshade/com/datastax/spark/connector/google/common/util/concurrent/ListenableFuture;
at com.datastax.spark.connector.rdd.reader.PrefetchingResultSetIterator.maybePrefetch(PrefetchingResultSetIterator.scala:26)
at com.datastax.spark.connector.rdd.reader.PrefetchingResultSetIterator.next(PrefetchingResultSetIterator.scala:39)
at com.datastax.spark.connector.rdd.reader.PrefetchingResultSetIterator.next(PrefetchingResultSetIterator.scala:17)
at scala.collection.Iterator$$anon.next(Iterator.scala:409)
at scala.collection.Iterator$$anon.next(Iterator.scala:409)
at scala.collection.Iterator$$anon.next(Iterator.scala:444)
at com.datastax.spark.connector.util.CountingIterator.next(CountingIterator.scala:16)
at scala.collection.Iterator$$anon.next(Iterator.scala:409)
at org.apache.spark.util.collection.ExternalSorter.insertAll(ExternalSorter.scala:194)
at org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:63)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:79)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:47)
at org.apache.spark.scheduler.Task.run(Task.scala:85)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:274)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
任何人都可以建议或指出这个问题,以及可能的解决方案吗?
问题已通过从 spark/jars/
中删除 cassandra-driver-core-3.1.0-shaded.jar 得到解决一个主题java 重复类 冲突 问题?!
如果涉及任何重复的 jar,需要确认是否包含所有 jar。
上述解决方案只是其中一种情况
libraryDependencies += "com.datastax.spark" % "spark-cassandra-connector_2.11" % "2.0.0-M3"
引入。
如果你进入 ~/.ivy2/cache/com.datastax.spark/spark-cassandra-connector_2.11 你会发现一个名为 ivy-2.0.0-M3.xml
的文件在该文件中,依赖项是
com.datastax.cassandra" name="cassandra-driver-core" rev="3.0.2" force="true"
请注意,它是 3.0.2 版的 Cassandra 驱动程序核心,它被更新的驱动程序核心超越。
恰好the latest source on Github does not show a implementation for fetchMoreResults继承自接口PagingIterable
如果您在 Github 上将 Git 版本回滚到 3.0.x,您会发现
public ListenableFuture<ResultSet> fetchMoreResults();
所以看起来最新的 Cassandra 核心驱动程序是不完整的。或者我可能会遗漏一些东西。希望这有帮助。
tl;博士;删除最新的驱动程序并使用嵌入在 spark cassandra 连接器中的驱动程序。
有同样的问题
项目中有两个依赖项,它们都有 cassandra-driver-core
作为依赖项
spark-cassandra-connector_2.11-2.0.0-M3
&
job-server-api_2.10-0.8.0-SNAPSHOT
spark-cassandra-connecter 预期 ResultSet.fetchMoreResults
具有不同的 return 类型,因为其 shading of guava
预期。 shade.com.datastax.spark.connector.google.common.util.concurrent.ListenableFuture
找到了。
com.google.common.util.concurrent.ListenableFuture
切换到 unshaded version of cassandra-connector 以更正问题
对于所有这些问题 运行 下面的命令并检查是否存在任何重叠的依赖关系 -
mvn dependency:tree