在AKS上部署的Spark 4.1.1 + Cosmos DB Cassandra API:没有连接器时会出现ClassNotFound;使用spark-cassandra-connector_2.13-3.5.1时会出现ClosedConnectionException
我们正在把在AKS(Kubernetes)上运行的Spark作业从Spark 3.5.3升级到Spark 4.1.1。
当前工作环境(Spark 3.5.3):
- 连接器:
com.datastax.spark:spark-cassandra-connector-assembly_2.12:3.5.1 - 目标:Azure Cosmos DB Cassandra API
- 通过Cassandra数据源进行读写(
org.apache.spark.sql.cassandra)
在升级到Spark 4.1.1(在AKS上)后,我们看到:
案例A – 未提供连接器jar
SparkClassNotFoundException在调用.format("org.apache.spark.sql.cassandra")时
案例B – 带有连接器jar spark-cassandra-connector-assembly_2.12:3.5.1
- ClassNotFound错误已解决,但在读/写阶段与
java.io.IOException/ClosedConnectionException相关的连接失败
问题: 在AKS上的Spark 4.1.1上读取/写入时,正确的连接器/产物(artifact)和配置是什么?针对 Cosmos DB Cassandra API?是否有已知需要变更的地方?
val df = spark.read.format("org.apache.spark.sql.cassandra").options(Map("keyspace" -> "
环境:
- AKS + Kubernetes上的Spark(spark-submit)
- Spark:3.5.3(可用) → 4.1.1(失败)
- 尝试的连接器:
spark-cassandra-connector-assembly_2.13:3.5.1 - 目标:Azure Cosmos DB Cassandra API
解决方案
你这里有几个点混在一起了:
- Scala 2.12与 2.13
- Spark版本3.5与 4.1
为Spark 4.1的开源连接器并不存在,你很可能需要来自DataStax的付费支持才能获得它。
可以考虑使用更新的工具,如DuckDB或 Polars,而不是Spark。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。