安装Delta Lake

Delta Lake很好地集成在Apache Spark中。因此,最简单的方法是将Delta Lake与Apache Spark一起使用。2021年5月25日,Delta 发布了1.0.0版本,支持Spark 3.1.x,并于2022年2月11日发布了1.0.1版本,修复了Delta Lake 1.1.0到Delta Lake 1.0.0之间的back-ports bug。2021年12月3日,Delta发布了1.1.0版本,支持Spark 3.2.x。Delta Lake版本和Apache Spark的兼容版本见表10-3。

Delta Lake和Apache Spark的兼容版本如下表所示。

Delta Lake版本 Apache Spark版本
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.1.x的Delta Lake最新版本是1.0.1(如果使用的是Spark 2.x.x,请使用Delta Lake 0.6.1版本)。下面介绍了在不同场景下安装Delta Lake的方式。

(1) 交互式安装

当使用Apache Spark shell时,Delta Lake包与--packages选项一起应用,并指定两个其他配置,命令如下:

$ bin/spark-shell --packages io.delta:delta-core_2.12:1.0.1 
   --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-core_2.12</artifactId>
    <version>1.0.1</version>
</dependency>

SBT中的build.sbt文件配置内容如下:

libraryDependencies += "io.delta" %% "delta-core" % "1.0.1"

(3) Zeppelin解释器配置

如果是使用Zeppelin Notebook进行交互式开发,则需要将delta-core_2.12-1.0.1.jar包拷贝到$SPARK_HOME/jars/目录下。然后,在Zeppelin的Spark解释器中添加相关属性。需要添加的属性见下表。

属性名 属性值 备注
spark.home /home/hduser/bigdata/spark-3.1.2 请修改为自己的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
spark.databricks.delta.retentionDurationCheck.enabled  false

《Flink原理深入与编程实战》