2017-02-28 6 views
0

は(datastax)カサンドラ2.1.13と互換性のある2.0を刺激していますか? ローカルmacにspark 2.1.0をインストールし、scala 2.11.xもインストールしました。 私は、スパークシェル上で次のコード

spark-shell 

import org.apache.spark.sql.SparkSession 

import org.apache.spark.sql.implicits._ 
import org.apache.spark.sql.cassandra._ 
import com.datastax.spark.connector.cql._ 
import org.apache.spark.sql 
import org.apache.spark.SparkContext._ 
import com.datastax.spark.connector.cql.CassandraConnector._ 

spark.stop 

val sparkSession = SparkSession.builder.appName("Spark app").config("spark.cassandra.connection.host",CassandraNodeList).config("spark.cassandra.auth.username", CassandraUser).config("spark.cassandra.auth.password", CassandraPassword).config("spark.cassandra.connection.port", "9042").getOrCreate() 

sparkSession.sql("""CREATE TEMPORARY view hdfsfile 
    |USING org.apache.spark.sql.cassandra 
    |OPTIONS (
    | table "hdfs_file", 
    | keyspace "keyspaceName")""".stripMargin) 

****を実行しています(1.4とカサンドラ2.1.13をスパーク)datastax 4.8.6がインストールされているサーバからカサンドラ・テーブルに読み取ることが

をしようとしています******エラーが発生する*****

17/02/28 10:33:02エラー実行者:ステージ3.0のタスク8.0で例外(TID 20) java.lang.NoClassDefFoundError:scala/collection/GenTraversableOnce $ class com.datastax.spark.connector.util.CountingIterator。(CountingIterator.scala:4) at com.datastax.spark.connector.rdd.CassandraTableScanRDD.compute(CassandraTableScanRDD.scala:336) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323) at org.apache.spark。 rdd.RDD.iterator(RDD.scala:287) at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala: 323) at org.apache.spark.rdd.RDD.iterator(RDD.scala:287) at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38) at org.apache.spark。 (RDD.scala:287) at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD .scala:38) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323) at org.apache.spark.rdd.RDD.iterator(RDD.scala:287) at org.apache .spark.scheduler.ResultTask.runTask(ResultTask.scala:87) at org.apache.spark.scheduler.Task.run(Task.scala:99) at org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala:282)java.util.concurrent.ThreadPoolExecutor $ Worker.runで java.util.concurrent.ThreadPoolExecutor.runWorkerで(ThreadPoolExecutor.java:1142) (ThreadPoolExecutor.java:617) れるjava.langで.Thread.run(Thread.java:745)

答えて

1

これはScalaのバージョンの不一致エラーです。 scala 2.11(またはその逆)のscala 2.10ライブラリを使用しています。これは、よくある質問

This means that there is a mix of Scala versions in the libraries used in your code. The collection api is different between Scala 2.10 and 2.11 and this the most common error which occurs if a scala 2.10 library is attempted to be loaded in a Scala 2.11 runtime. To fix this make sure that the library name has the correct Scala version suffix to match your Scala version.

に引用SCCよくある質問

https://github.com/datastax/spark-cassandra-connector/blob/master/doc/FAQ.md#what-does-this-mean-noclassdeffounderror-scalacollectiongentraversableonceclass

に説明されています

関連する問題