Проблема с разъемом Spark cassendra yugabyte для извлечения записей из таблицы

Например, ниже мой код:

spark = SparkSession.builder.appName('SparkCassandraApp')\
    .config('spark.cassandra.connection.host', 'xx.xx.xx.xx') \
    .config('spark.cassandra.connection.port', '9042') \
    .config("spark.cassandra.auth.username","username")\
    .config("spark.cassandra.auth.password","password")\
    .getOrCreate()
df = spark.read.format("org.apache.spark.sql.cassandra").option("table","local").option( "keyspace","system").load().select('host_id')
df.show()

Получение следующих ошибок:

ОШИБКА executor.Executor: Исключение в задаче 0.0 на этапе 0.0 (TID 0) java.io.IOException: Исключение при подготовке SELECT host_id FROM system.local ГДЕ токен (ключ) ‹ ? РАЗРЕШИТЬ ФИЛЬТРАЦИЯ: org/apache/spark/sql/catalyst/package$ScalaReflectionLock$ в com.datastax.spark.connector.rdd.CassandraTableScanRDD.createStatement(CassandraTableScanRDD.scala:323)

я использую

Версия Spark: 2.4.6

Версия Scala: 2.11.12

spark-cassendra-connector spark-cassandra-connector_2.11-2.0.5-yb-2.jar


person Rutunj sheladiya    schedule 02.07.2020    source источник


Ответы (1)


Для Spark 2.4.x вам необходимо использовать Spark Cassandra Connector 2.4.3 или, что лучше, свежий выпуск 2.5.0. Соединитель Spark Cassandra совместим только со Spark 2.0-2.2. См. матрицу совместимости.

См. инструкции по использованию SCC 2.5.0 с pyspark.

person Alex Ott    schedule 02.07.2020
comment
Спасибо Алекс за повтор, я пробовал оба способа, но это не сработало. - person Rutunj sheladiya; 09.07.2020
comment
ScalaReflectionLock - это первый признак несовместимости драйверов... Вы сделали чистку после изменения версии пакета? - person Alex Ott; 09.07.2020