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

Apache Spark创建Delta表报错:找不到delta数据源的解决咨询

错误原因

Spark默认未集成Delta Lake数据源插件,因此需要手动引入对应依赖包才能使用Delta表功能。Spark 3.5.0适配的Delta Lake版本建议选择2.4.0(版本需严格匹配,避免兼容性问题)。

修复方法

以下三种方法任选其一即可:

方法1:启动PySpark时指定依赖包

在命令行启动PySpark时,通过--packages参数加载Delta依赖:

pyspark --packages io.delta:delta-core_2.12:2.4.0

如果是提交Spark作业(使用spark-submit),则执行:

spark-submit --packages io.delta:delta-core_2.12:2.4.0 your_script.py

方法2:修改Spark配置永久添加依赖

编辑Spark安装目录下的conf/spark-defaults.conf文件(若无该文件,可复制spark-defaults.conf.template重命名),添加以下配置项:

spark.jars.packages io.delta:delta-core_2.12:2.4.0
spark.sql.extensions io.delta.sql.DeltaSparkSessionExtension
spark.sql.catalog.spark_catalog org.apache.spark.sql.delta.catalog.DeltaCatalog

配置完成后,每次启动Spark都会自动加载Delta依赖,无需重复指定参数。

方法3:在代码中直接配置依赖

在构建SparkSession时加入依赖配置,适合脚本运行场景:

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("DeltaExample") \
    .config("spark.jars.packages", "io.delta:delta-core_2.12:2.4.0") \
    .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \
    .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog") \
    .getOrCreate()

# 注意路径转义,原代码中的\Test需改为\\Test避免转义错误
csv_file = "F:\\Data\\Test\\file.csv"
df_data = spark.read.csv(csv_file, header=True, inferSchema=True, sep=',')
df_data.write.format("delta").save("F:\\Data\\out\\test_delta")

注意事项

  • 确认Spark的Scala版本:Spark 3.5.0默认使用Scala 2.12,因此依赖包中的_2.12需对应;若你的Spark基于Scala 2.13编译,需将依赖改为io.delta:delta-core_2.13:2.4.0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:41:03