发布日期:2026-01-11
安装Delta Lake
Delta Lake很好地集成在Apache Spark中。因此,最简单的方法是将Delta Lake与Apache Spark一起使用。2025年6月,Delta 发布了4.0.0版本,支持Spark 4.0.0。Delta Lake版本和Apache Spark的兼容版本见表10-3。
Delta Lake和Apache Spark的兼容版本如下表所示。
| Delta Lake版本 | Apache Spark版本 |
|---|---|
| 4.0.x | 4.0.x |
| 3.3.x | 3.5.x |
| 3.2.x | 3.5.x |
| 3.1.x | 3.5.x |
| 3.0.x | 3.5.x |
| 2.4.x | 3.4.x |
| 2.3.x | 3.3.x |
| 2.2.x | 3.3.x |
| 2.1.x | 3.3.x |
| 2.0.x | 3.2.x |
| 1.2.x | 3.2.x |
| 1.1.x | 3.2.x |
| 1.0.x | 3.1.x |
| 0.7.x 和 0.8.x | 3.0.x |
| 低于 0.7.0 | 2.4.2 - 2.4.<latest> |
安装Delta Lake
兼容Spark 3.5.x的Delta Lake最新版本是3.3.2。下面介绍了在不同场景下安装Delta Lake的方式。
(1) 交互式安装
当使用Apache Spark shell时,Delta Lake包与--packages选项一起应用,并指定两个其他配置,命令如下:
$ bin/spark-shell --packages io.delta:delta-spark_2.12:3.3.2 --conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" --conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog"
(2) 项目安装
如果是使用IntelliJ IDEA进行项目开发,则根据是开发Maven项目还是SBT项目,进行不同的依赖配置。
Maven中的pom.xml文件配置内容如下:
<dependency>
<groupId>io.delta</groupId>
<artifactId>delta-spark_2.12</artifactId>
<version>3.3.2</version>
</dependency>
SBT中的build.sbt文件配置内容如下:
libraryDependencies += "io.delta" %% "delta-spark" % "3.3.2"
(3) Zeppelin解释器配置
如果是使用Zeppelin Notebook进行交互式开发,则需要将delta-spark_2.12-3.3.2.jar包拷贝到$SPARK_HOME/jars/目录下。然后,在Zeppelin的Spark解释器中添加相关属性。需要添加的属性见下表。
| 属性名 | 属性值 | 备注 |
|---|---|---|
| spark.home | /opt/bigdata/spark | 请修改为自己的Spark安装目录 |
| spark.sql.extensions | io.delta.sql.DeltaSparkSessionExtension | |
| spark.sql.catalog.spark_catalog | org.apache.spark.sql.delta.catalog.DeltaCatalog |
以上对Spark解释器配置是全局的。如果只想局部配置,则需要在每个notebook前指定配置,内容如下:
%spark.conf spark.sql.extensions io.delta.sql.DeltaSparkSessionExtension spark.sql.catalog.spark_catalog org.apache.spark.sql.delta.catalog.DeltaCatalog # 以下在测试/开发环境配置(执行 VACUUM 时,忽略最小保留时长限制) spark.databricks.delta.retentionDurationCheck.enabled false