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

Spark运行Delta Lake报V2TableWithV1Fallback类未找到错误如何解决

错误根因

该报错的核心原因是Spark运行版本与Delta版本不兼容:
你虽然通过pip安装了pyspark 3.1.2,但findspark.init()强制指定了路径为/home/ole/spark-3.0.3-bin-hadoop3.2的Spark 3.0.3作为运行环境。而Delta 1.0.0仅适配Spark 3.1.x版本,Spark 3.0.x内核中不存在报错里缺失的org/apache/spark/sql/connector/catalog/V2TableWithV1Fallback类,因此触发类找不到异常。
此外你代码中存在重复赋值的笔误:spark = spark = configure_spark_with_delta_pip(builder).getOrCreate(),虽不影响运行但建议修正。

修复方案

二选一即可:

  • 方案1:继续使用本地Spark 3.0.3环境,降级Delta到兼容版本
    执行命令pip3 install delta-spark==0.8.0,Delta 0.8.0是适配Spark 3.0.x的官方版本。
  • 方案2:继续使用Delta 1.0.0,修正Spark运行版本
    修改findspark初始化逻辑,要么指向你本地Spark 3.1.2的实际安装路径,要么删除路径参数让findspark自动调用pip安装的pyspark 3.1.2,对应修改为:
    findspark.init()
修复后验证代码
import findspark
# 无参数默认读取pip安装的pyspark,若用本地Spark3.1.2可填对应安装路径
findspark.init()
from pyspark.sql import SparkSession
from delta import *

builder = SparkSession.builder.appName("MyApp") \
    .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \
    .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")

spark = configure_spark_with_delta_pip(builder).getOrCreate()
# 写入测试
data = spark.range(0,5)
data.write.format("delta").save("/tmp/delta-table")
# 读取验证
df = spark.read.format("delta").load("/tmp/delta-table")
df.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:36:02