Невозможно записать dataframe на cassandra с помощью pyspark - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь записать фрейм данных в cassandra, используя pyspark, но я получаю сообщение об ошибке:

py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o74.save.: org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задание 6 на этапе 3.0 не выполнено 4 раза, последний сбой: потерянное задание 6.3 на этапе 3.0 (TID 24, ip-172-31-11-193.us-west-2.compute.internal, исполнитель 1): java.lang.NoClassDefFoundError: com / twitter / jsr166e / LongAdder в org.apache.spark.metrics.OutputMetricsUpdater $ TaskMetricsSupport $ class. $ init $ (OutputMetricsUpdater.) в org.apache.spark.metrics.OutputMetricsUpdater $ TaskMetricsUpdater. (OutputMetricsUpdater.scala: 153) в org.apache.spark.metrics.OutputMetricsUpdater $ .apply (OutputMetricsUpdater.scala: 75) в com.dat.writer.TableWriter.writeInternal (TableWriter.scala: 209) на com.datastax.spark.connector.writer.TableWriter.insert (TableWriter.scala: 197) на com.datastax.spark.connector.writer.TableWriter.write (TableWriter.scala: 183) в com.datastax.spark.connector.RDDFunctions $$ anonfun $ saveToCassandra $ 1.apply (RDDFunctions.scala: 36) в com.datastax.spark.connector.RDDFunctions $$ anonfun $ saveToCassandra $ 1.apply (RDDFunctions.scala: 36) в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 90) в org.apache.spark.scheduler.Task.run (Task.scala: 121) вorg.apache.spark.executor.Executor $ TaskRunner $$ anonfun $ 10.apply (Executor.scala: 408) в org.apache.spark.util.Utils $ .tryWithSafeFinally (Utils.scala: 1360) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 414) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.runj24.) на java.lang.Thread.run (Thread.java:748)

Ниже приведен мой код для записи:

DataFrame.write.format(
   "org.apache.spark.sql.cassandra"
).mode(
   'append'
).options(
   table="student1", 
   keyspace="university"
).save()

Я добавил нижеприведенную искру-caasandraсоединитель в spark-default.conf

spark.jars.packages datastax: spark-cassandra-connector: 2.4.0-s_2.11

Я могу читать данные из Кассандры, но выдает сообщениес записью.

1 Ответ

0 голосов
/ 17 июня 2019

Я не эксперт по Spark, но это может помочь:

Эти ошибки обычно возникают, когда Spark Cassandra Connector или его зависимости не находятся на пути к классам во время выполнения Spark Заявка. Обычно это вызвано неиспользованием предписанного --packages метод добавления Spark Cassandra Connector и его зависимостей в путь к классам во время выполнения.

Источник: https://github.com/datastax/spark-cassandra-connector/blob/master/doc/FAQ.md#why-cant-the-spark-job-find-spark-cassandra-connector-classes-classnotfound-exceptions-for-scc-classes

...