Запрос таблицы Cassandra через Spark

Я пытаюсь получить значения из таблицы Cassandra 2.0.17 через spark-1.6.0 и scala-2.11.7, выполнив следующие действия.

  1. Запущена cassandra -- запуск службы cassandra
  2. Запустил искру -- sbin/start-all.sh
  3. заявленная искра scala -- bin/spark-shell --jars spark-cassandra-connector_2.10-1.5.0-M1.jar

выполнил эти команды в scala

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext._

sc.stop

val conf = new SparkConf(true).set("spark.cassandra.connection.host","127.0.0.1")

val sc=new SparkContext("local[2]","test",conf)

import com.datastax.spark.connector._

до сих пор все работает нормально, но когда я выполняю -

val rdd=sc.cassandraTable("tutorialspoint","emp")

Это дает мне следующую ошибку

error: bad symbolic reference. A signature in CassandraTableScanRDD.class refers to term driver
in package com.datastax which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling CassandraTableScanRDD.class.
error: bad symbolic reference. A signature in CassandraTableScanRDD.class refers to term core
in value com.datastax.driver which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling CassandraTableScanRDD.class.
error: bad symbolic reference. A signature in CassandraTableScanRDD.class refers to term core
in value com.datastax.driver which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling CassandraTableScanRDD.class.

Добавили банки из cassandra lib, чтобы зажечь и обновить его. я использую Java версии 1.8.0_72

М я что-то пропустил?


person Afroz Shaikh    schedule 09.02.2016    source источник
comment
эта ссылка может вам помочь - stackoverflow.com/questions/34641995/. Не забудьте использовать совместимую версию jar-файлов Cassandra с версией Spark.   -  person Sumit    schedule 09.02.2016
comment
хорошо, есть проблема в версии Cassandra, а затем в версиях jar. приходится все удалять..   -  person Afroz Shaikh    schedule 09.02.2016
comment
теперь я использовал cassandra 2.2.4 spark 1.6.0 scala-2.11.7 и jar spark-cassandra-connector-java_2.11-1.5.0-RC1 и все указанные вами jar. он решил эту ошибку, но теперь, когда я печатаю (rdd.first), он выдает java.lang.NoSuchMethodError: scala.runtime.ObjectRef.zero()Lscala/runtime/ObjectRef;   -  person Afroz Shaikh    schedule 09.02.2016
comment
решил это купить понижение до spark1.4 спасибо   -  person Afroz Shaikh    schedule 09.02.2016
comment
Отлично .... если решение, представленное в моем первом комментарии, работает, пожалуйста, проголосуйте за него. Это поможет другим.   -  person Sumit    schedule 09.02.2016


Ответы (1)


Драйвер, который вы используете, несовместим с вашей версией scala и spark. Вы используете scala-2.11.7, но этот драйвер предназначен для scala 2.10. Также для искры этот драйвер поддерживает искру 1.5.x.

person anshul_cached    schedule 09.02.2016
comment
теперь я использовал cassandra 2.2.4 spark 1.6.0 scala-2.11.7 и jar spark-cassandra-connector-java_2.11-1.5.0-RC1 и все указанные вами jar. он решил эту ошибку, но теперь, когда я печатаю (rdd.first), он выдает java.lang.NoSuchMethodError: scala.runtime.ObjectRef.zero()Lscala/runtime/ObjectRef; - person Afroz Shaikh; 09.02.2016
comment
Дистрибутив Spark построен на основе scala 2.10 и включает сборку scala 2.10. Таким образом, ваша искровая оболочка сообщила, что она работает на 2.10. Так что создайте искру самостоятельно spark.apache. org/docs/latest/ или используйте коннектор scala_2.10 - person anshul_cached; 09.02.2016