【问题标题】:Unable to write dataframe to cassandra using pyspark无法使用 pyspark 将数据帧写入 cassandra
【发布时间】:2019-10-31 03:50:30
【问题描述】:

我正在尝试使用 pyspark 向 cassandra 写入数据帧,但它给我一个错误:

py4j.protocol.Py4JJavaError:调用 o74.save 时出错。 :org.apache.spark.SparkException:作业因阶段失败而中止: 阶段 3.0 中的任务 6 失败 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.scala:107) 在 org.apache.spark.metrics.OutputMetricsUpdater$TaskMetricsUpdater.(OutputMetricsUpdater.scala:153) 在 org.apache.spark.metrics.OutputMetricsUpdater$.apply(OutputMetricsUpdater.scala:75) 在 com.datastax.spark.connector.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.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)

下面是我的写代码:

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

我在 spark-default.conf 中添加了下面提到的 spark-caasandra 连接器

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

我能够从 cassandra 读取数据,但问题在于写入。

【问题讨论】:

    标签: pyspark amazon-emr cassandra-3.0


    【解决方案1】:

    我不是 Spark 专家,但这可能会有所帮助:

    这些错误通常在 Spark Cassandra 连接器或 它的依赖项不在 Spark 的运行时类路径上 应用。这通常是由于没有使用规定的 --packages 方法将 Spark Cassandra 连接器及其依赖项添加到运行时类路径。

    来源: 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

    【讨论】:

      猜你喜欢
      • 2020-07-17
      • 2020-10-06
      • 2018-06-24
      • 2020-08-04
      • 2020-11-26
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多