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

Cassandra搭配PySpark及Python3.9版本兼容与安装报错咨询

问题根因定位
  1. 首次scala.Product$class类缺失报错:根因为Spark Cassandra连接器的编译Scala版本与PySpark运行依赖的Scala版本不匹配。PySpark 3.x官方默认基于Scala 2.12编译,若使用基于Scala 2.11编译的连接器,会触发该类缺失错误,Scala 2.12对底层核心类做了不兼容调整,删除了scala.Product$class类。
  2. Cassandra 4安装依赖报错:通过系统包管理器安装Cassandra 4时,操作系统默认Python 3版本为3.5,低于Cassandra 4要求的最低Python 3.6版本,触发依赖校验失败。
  3. 后续连接器依赖拉取失败报错:存在两种可能,一是当前网络环境无法访问公共Maven仓库拉取依赖包,二是连接器与Spark的版本匹配规则不符,启动参数缺少必要配置项。

适配Python 3.9的环境配置方案

经测试可用的兼容版本组合

  • JDK:8u202+ 或 11(推荐JDK 11,适配所有新组件)
  • Scala版本:2.12.x(需与PySpark编译用Scala版本完全一致)
  • Python版本:3.9.x
  • Cassandra版本:4.0.3+(稳定版,原生支持Python 3.9)
  • PySpark版本:3.2.4(基于Scala 2.12编译,支持Python 3.9)
  • Spark Cassandra连接器版本:3.2.0(适配Spark 3.2.x、Cassandra 4.x,基于Scala 2.12编译)

具体安装步骤

  1. Cassandra 4.x安装
    避免使用系统包管理器安装,直接下载官方二进制包解压使用,绕开系统Python版本限制:
  • 下载Cassandra 4.0.x稳定版二进制包,解压到自定义目录
  • 配置环境变量:export CASSANDRA_HOME=你的解压路径、export PATH=$CASSANDRA_HOME/bin:$PATH
  • 指定cqlsh使用Python 3.9:修改$CASSANDRA_HOME/bin/cqlsh文件头部的shebang为#!/usr/bin/env python3.9,或执行命令时指定PYTHON=python3.9 cqlsh即可
  • 前台启动测试:cassandra -f
  1. PySpark环境安装
    直接通过pip安装对应版本即可:
    pip install pyspark==3.2.4
    安装完成后执行pyspark --version,确认输出的Scala版本为2.12.x,匹配连接器要求。
  2. 连接测试
    启动pyspark时使用如下参数:
pyspark \
--packages com.datastax.spark:spark-cassandra-connector_2.12:3.2.0 \
--conf spark.sql.extensions=com.datastax.spark.connector.CassandraSparkExtensions \
--conf spark.cassandra.connection.host=127.0.0.1

如网络无法拉取依赖,可配置国内公共Maven源,或提前手动下载连接器jar包到本地,启动时用--jars 本地jar包绝对路径替代--packages参数即可。
启动完成后执行测试代码验证连接:

# 替换为实际的键空间和表名
df = spark.read.format("org.apache.spark.sql.cassandra").options(table="test_table", keyspace="test_keyspace").load()
df.show()

针对补充的PySpark 3.0.1环境适配说明

PySpark 3.0.1对应匹配的Spark Cassandra连接器版本为3.0.1,完整启动参数如下,依赖拉取失败的处理逻辑和上述一致:

pyspark \
--packages com.datastax.spark:spark-cassandra-connector_2.12:3.0.1 \
--conf spark.sql.extensions=com.datastax.spark.connector.CassandraSparkExtensions \
--conf spark.cassandra.connection.host=127.0.0.1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:54:02