Spark Delta Lake 0.4.0 发布,支持 Python API 和部分 SQL

Spark Delta Lake 0.4.0 发布,支持 Python API 和部分 SQL,第1张

概述ApacheSpark 发布了DeltaLake0.4.0,主要支持DML的PythonAPI、将Parquet表转换成DeltaLake表以及部分SQL功能。 下面详细地介绍这些功能部分功能的SQL支持SQL的支持能够为用户提供极大的便利,如果大家去看数砖的DeltaLake产品,你肯定已经看到它已经支持了SQL Apache Spark 发布了 Delta Lake 0.4.0,主要支持 DML 的 Python API、将 Parquet 表转换成 Delta Lake 表 以及部分 sql 功能。 

下面详细地介绍这些功能

部分功能的 sql 支持

sql 的支持能够为用户提供极大的便利,如果大家去看数砖的 Delta Lake 产品,你肯定已经看到它已经支持了 sql 语法。但是开源的 Delta Lake 在这个版本之前只支持使用 Scala\Java 去创建、删除、更新 Delta Lake 表。

值得高兴的是,从 0.4.0 版本开始,Delta Lake 已经开始支持一些命令的 sql 语法了。由于 Delta Lake 是单独的一个项目,如果需要让它支持所有的 sql 语法,需要从 Apache Spark 里面拷贝大量的代码到 Delta Lake 项目中,不便于维护,所以这个版本只支持 vacuum 和 history 简单命令的 sql 语法。

其他的 delete、update 以及 merge 的 DML *** 作支持可能得等到 Spark 3.0 版本才会支持的。目前社区也在 Spark 3.0 里面的 DataSource V2 API 里面添加了对 DELETE/UPDATE/MERGE 的支持,详情参见 https://issues.apache.org/jira/browse/SPARK-28303。相信在未来版本,这些基本的 sql 语法支持也会逐渐支持。

用于 DML 和实用 *** 作的 Python API

在 0.4.0 版本之前,Delta Lake 只支持 Scala 和 Java API。为了能够在 Python 中使用 Delta Lake,这个版本引入了 Python API(具体可以参见 https://github.com/delta-io/delta/issues/89),可以用它在 Delta Lake 表来进行 update\delete\merge 等 *** 作。

我们还可以使用这个 Python API 运行一些实用 *** 作,比如 vacuum、history等。这样 Python 和 Scala\Java 的 API 功能就对齐了。更多关于 Python API 的使用可以参见 Delta Lake 的官方文档。

将 Parquet 表转换成 Delta Lake 表

如果我们有一张 parquet 的普通表,然后我们想把它转换成  Delta Lake 表,在这之前我们需要先读出这张表,然后再写成 Delta Lake 表。如果我们的 parquet 表非常大,这需要很多的资源去转换。这个版本为我们提供了转换命令,直接可以在原地将 Parquet 表转换成 Delta Lake 表,注意这里说的是原地,意味着不需要将数据从一个地方挪到另外一个地方,也不需要将所有数据读出再写到原目录。这个命令会列出 Parquet 表的所有文件,然后通过自动读取所有 Parquet 文件的 footer 位置获取表的模式,最后生成一个 transaction log 来追踪这些文件。当然,如果你不需要 Delta Lake 表,你也可以使用这个命令将它再转回成普通的 Parquet 表。

总结

以上是内存溢出为你收集整理的Spark Delta Lake 0.4.0 发布,支持 Python API 和部分 SQL全部内容,希望文章能够帮你解决Spark Delta Lake 0.4.0 发布,支持 Python API 和部分 SQL所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1187894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存