Delta Lake 学习笔记(二)

本文深入探讨了DeltaLake项目,分析其构建于Spark之上的依赖管理,详细列出并解释了其依赖的jar包,包括spark-hive、spark-sql等关键组件。

1 Overview

笔者认为,在研究一个开源项目的之前,看看起依赖管理的文件,比如说 Maven 的 pom.xml 文件,或者是 Sbt 的 build.sbt 文件。

2 Delta Lake 依赖了什么 jar 包

查看 build.sbt 文件,可以看到 Delta Lake 确实是构建于 Spark 之上的,因为他除了依赖 Spark 几个依赖外,没有再额外引入一些 jar 包了,也是因为 Spark 项目本身比较庞大,已经引入了足够用的一些依赖工具包了。

libraryDependencies ++= Seq(
  // Adding test classifier seems to break transitive resolution of the core dependencies
  "org.apache.spark" %% "spark-hive" % sparkVersion.value % "provided",
  "org.apache.spark" %% "spark-sql" % sparkVersion.value % "provided",
  "org.apache.spark" %% "spark-core" % sparkVersion.value % "provided",
  "org.apache.spark" %% "spark-catalyst" % sparkVersion.value % "provided",

  // Test deps
  "org.scalatest" %% "scalatest" % "3.0.5" % "test",
  "org.apache.spark" %% "spark-catalyst" % sparkVersion.value % "test" classifier "tests",
  "org.apache.spark" %% "spark-core" % sparkVersion.value % "test" classifier "tests",
  "org.apache.spark" %% "spark-sql" % sparkVersion.value % "test" classifier "tests"
)

sbt 有个插件可以参考下,可以输出类似于 Maven dependency tree 的效果。

关于依赖,主要定位到文件的 libraryDependencies,可以看到,基本都是 provided,所以这个时候用 dependencyTree 是打不出依赖树的。

image_1d9d59de2v1pql6mc11m646q5c.png-164.2kB

上图可以看到,插件的 dependency 有很多类似的命令,输入 dependencyTree 命令看到如下输出,只会默认打印 compile 的依赖。

image_1d9d5g7n517ploa91rpb189te0219.png-101.7kB

这里还有一个命令 provided:dependencyTree,表示把 provided 的依赖树也会打印出来。

> provided:dependencyTree
[warn] Credentials file /Users/runzhliu/.bintray/.credentials does not exist
[info] io.delta:delta-core_2.11:0.1.1-SNAPSHOT
[info]   +-org.apache.spark:spark-catalyst_2.11:2.4.2
[info]   | +-commons-codec:commons-codec:1.10
[info]   | +-org.antlr:antlr4-runtime:4.7
[info]   | +-org.apache.spark:spark-core_2.11:2.4.2 [S]
[info]   | | +-com.clearspring.analytics:stream:2.7.0
...
...
[info]     +-org.apache.spark:spark-sketch_2.11:2.4.2
[info]     | +-org.apache.spark:spark-tags_2.11:2.4.2 [S]
[info]     | | +-org.spark-project.spark:unused:1.0.0
[info]     | |
[info]     | +-org.spark-project.spark:unused:1.0.0
[info]     |
[info]     +-org.apache.spark:spark-tags_2.11:2.4.2 [S]
[info]     | +-org.spark-project.spark:unused:1.0.0
[info]     |
[info]     +-org.apache.xbean:xbean-asm6-shaded:4.8
[info]     +-org.spark-project.spark:unused:1.0.0
[info]
[success] Total time: 3 s, completed 2019-4-27 0:04:50

如上图,可以打印出所有的依赖树。

3 Summary

Delta Lake 是构建于 Spark 之上的项目,所以依赖都关于 Spark 的其他 lib。由于 Delta Lake 并没有依赖更多的项目(Spark 其实已经很多了…),所以后面我们去探索代码的时候,只要有 Spark 基础的同学,应该都可以很快上手。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值