You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark连接Cassandra报NoClassDefFoundError:util/logging错误

问题记录

已下载spark-cassandra-connector_3.12-3.2.0.jar包,存放至/apache-spark/3.2.1/libexec/jars目录,通过如下Spark配置引入该jar包:

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

执行Cassandra数据查询操作时抛出报错:

Py4j.protocol.PyJJavaError: An error occurred while calling o114.load.
:Java.lang.NoClassDefFoundError: com/datastax/spark/connector/util/logging
问题根因
  • 配置存在笔误:setMasetMaster为错误写法,正确方法名为setMaster
  • 包名错误:不存在适配Scala 3.12版本的Cassandra连接器,Spark 3.2.x适配的连接器Scala版本为2.12,手动下载的jar包本身版本标识错误
  • 依赖缺失:仅引入连接器主jar包不会自动加载其传递依赖,报错缺失的类属于连接器的依赖组件,未被引入到类路径中
  • 路径配置错误:配置中使用了占位符jarPath,未替换为jar包实际存放的绝对路径,JVM无法定位到目标jar文件
  • 类路径配置不全:本地运行模式下仅配置driver端类路径,未配置executor端类路径,会导致executor侧加载不到依赖类
修复方案

优先选择自动依赖管理方式,避免手动导包遗漏依赖:

  1. 删除手动下载的错误版本jar包,提交Spark任务时添加--packages参数,自动拉取适配版本的连接器及所有传递依赖,示例命令:
spark-submit --packages com.datastax.spark:spark-cassandra-connector_2.12:3.2.0 你的脚本文件名.py

该参数会自动拉取对应版本连接器的所有依赖到本地缓存,driver和executor端都能正常加载,不会出现类缺失问题。

如果必须使用本地手动导包的方式,按如下步骤调整:

  1. 下载正确版本的连接器包:spark-cassandra-connector_2.12-3.2.0.jar,同时下载该包所有传递依赖jar包,全部放到/apache-spark/3.2.1/libexec/jars目录下
  2. 修正代码中的配置笔误,替换占位符路径为实际绝对路径,同时配置driver和executor两端的类路径,示例代码:
from pyspark import SparkConf, SparkSession
import os

spark_jar_dir = "/apache-spark/3.2.1/libexec/jars"
# 拼接目录下所有jar包为类路径
class_path = ":".join([os.path.join(spark_jar_dir, f) for f in os.listdir(spark_jar_dir) if f.endswith(".jar")])

conf = SparkConf()\
    .setAppName("d")\
    .setMaster("local")\
    .set("spark.driver.extraClassPath", class_path)\
    .set("spark.executor.extraClassPath", class_path)

spark = SparkSession.builder.config(conf=conf).getOrCreate()
  1. 启动任务后可在Spark UI的Environment页签核对两端类路径配置,确认连接器jar包已被正确加载,再执行Cassandra查询即可。

内容的提问来源于stack exchange,提问作者Starter_F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 18:18:37