Pyspark cassandra 连接器 NoclassDefFoundError,util/logging

问题描述 投票:0回答:2

我下载了

spark-cassandra-connector_3.12-3.2.0.jar
并放入
/apache-spark/3.2.1/libexec/jars
文件夹中。

在conf中调用这个jar,如下所示:

conf=SparkConf().setAppName("d").setMasetMaster("local")
   .set("spark.driver.extraClassPath",
        "jarPath/spark-cassandra-connector_3.12-3.2.0.jar")

查询 caasandra 但出现以下错误,请提出建议

**Py4j.protocol.PyJJavaError: An error occurred while calling o114.load.
:Java.lang.NoClassDefFoundError: com/datastax/spark/connector/util/logging**
apache-spark cassandra spark-cassandra-connector
2个回答
1
投票

问题是这个 jar 不包含所有必要的依赖项。 第二个问题是您使用了不正确的配置属性。

要修复它,您有两种选择:

  1. 您可以使用

    spark.jars.packages
    配置属性(或命令行中的
    --packages
    )以及值
    com.datastax.spark:spark-cassandra-connector_2.12:3.2.0
    ,如 docs 中所述。 这将获取 jar + 必要的依赖项

  2. 您可以下载包含所有依赖项的 spark-cassandra-connector- assembly jar,并将其与

    spark.jars
    配置属性(或命令行中的
    --jars
    )一起使用。

附注请参阅有关 配置属性的 Spark 文档。


0
投票

spark = SparkSession.builder
.config(“spark.jars.packages”,“com.datastax.spark:spark-cassandra-connector_2.12:3.0.0”)

您应该添加配置名称为spark.jars.packages和com.datastax.spark的连接器:

© www.soinside.com 2019 - 2024. All rights reserved.