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 表。

新福利:

从9月11日开始至10月15日截止,一共五周时间,每周二我会从公众号底部留言+转发+在看综合最多的读者中抽取一名读者,免费包邮送实体新书《HBase原理与实践》,留言互动起来吧~

上周获奖名单:ZRTX

猜你喜欢

1、云栖大会 | Apache Spark 3.0 和 Koalas 最新进展

2、32 道常见的 Kafka 面试题你都会吗?附答案

3、原创干货 | 史上最全的大数据学习资源(Awesome Big Data)

4、Apache Spark Delta Lake 写数据使用及实现原理代码解析

过往记忆大数据微信群,请添加微信:fangzhen0219,备注【进群】

支持delete吗_Spark Delta Lake 0.4.0 发布,支持 Python API 和部分 SQL相关推荐

  1. PyPyODBC 0.9.2发布 - 纯Python实现的pyodbc替代库

    PyPyODBC发布了0.9.2版本,新版本加入了对Python 2.4的兼容性,加强了模块的健壮性,并修正了对Windows平台上Access MDB文件的创建和压缩功能. 该模块的API语法尽力达 ...

  2. 实战 | 利用Delta Lake使Spark SQL支持跨表CRUD操作

    转载自  实战 | 利用Delta Lake使Spark SQL支持跨表CRUD操作 供稿 | eBay ADI-Carmel Team 作者 | 金澜涛 编辑 | 顾欣怡 本文7309字,预计阅读时 ...

  3. 全面介绍数砖开发 Delta Lake 的第一篇论文

    今年八月,Delta Lake 的第一篇论文发布了,我当时写了个总体介绍:Delta Lake 第一篇论文发布了,感兴趣的朋友可以先看总体介绍,再来详细了解一下本篇论文.因为篇幅较长,全文超3万字,建 ...

  4. 基于Delta Lake构建数据湖仓体系

    直播回放地址:https://developer.aliyun.com/live/249789 导读: 今天很高兴能与大家分享如何通过 Delta Lake 构建湖仓架构. 全文将围绕以下四个部分展开 ...

  5. Delta Lake 0.5.0 新功能介绍

    编译:刘佳毅,花名佳易,阿里巴巴计算平台事业部EMR团队开发工程师,目前从事大数据安全相关方面工作. Delta Lake发布了0.5.0版本,该版本加入了对Presto和Athena的支持,以及提升 ...

  6. 【译】Delta Lake 0.5.0介绍

    编译:刘佳毅,花名佳易,阿里巴巴计算平台事业部EMR团队开发工程师,目前从事大数据安全相关方面工作. 最近,Delta Lake发布了0.5.0版本,该版本加入了对Presto和Athena的支持,以 ...

  7. 一次Delta lake 0.8.0 踩坑有感:使用新框架的新版本,一定要尽早关注多多关注社区动态...

    点击上方蓝色"明哥的IT随笔",关注并选择"设为星标",keep striving! 一.数据胡三剑客介绍 关注大数据发展动态的朋友,都知道最近几年数据湖存储引 ...

  8. Delta Lake——数据湖的可靠性

    分享一位大神关于 Delta Lake 的演讲内容.这位是 Apache Spark 的 committer 和 PMC 成员,也是 Spark SQL 的最初创建者,目前领导 Databricks ...

  9. Delta Lake在Soul的应用实践

    简介: 传统离线数仓模式下,日志入库前首要阶段便是ETL,我们面临如下问题:天级ETL任务耗时久,影响下游依赖的产出时间:凌晨占用资源庞大,任务高峰期抢占大量集群资源:ETL任务稳定性不佳且出错需凌晨 ...

最新文章

  1. spring boot logback_SpringBoot集成logback后访问日志端点
  2. 醉酒删库:几杯红酒下肚,7小时数据消失...
  3. No rule to make target ‘../../libxxx_lib.so‘
  4. python ffmpeg pyav
  5. QT中在label中插入图片自适应label大小等比缩放
  6. 处理业务代码中循环遍历出现的性能问题
  7. 搞懂 SynchronizationContext
  8. 【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF
  9. 日月神话_常见的Java神话
  10. cocos2dX 之数据存储
  11. 使用electron开发指静脉客户端遇到的问题总结
  12. python ^ 操作在两整数加法运算中的妙用
  13. Windows2008之文件服务器资源管理器
  14. $$a,PHP独有的可变变量
  15. 利用PLTS对F域测试数据做“AFR”指南
  16. 这是一个刚入行程序员的成长
  17. 【nodejs】数据统计平台碰到的坑
  18. 模拟登录爬取广职院正方教务系统
  19. Web Api 调用时出现405错误解决方案
  20. 【node.js】nvm安装最新教程

热门文章

  1. javascript中常用数组函数
  2. 网站不能访问的解决思路
  3. 玩聚SR和FriendFeed的区别
  4. 12月16日文章排行点评及编辑部训练
  5. java防止库存超买_java初探(1)之防止库存为负以及防超买
  6. 直方图和直条图_绘图专题 | 条形图/直方图傻傻分不清楚
  7. vue-cli2.9.6 build项目无法访问资源 无法访问elementUI字体
  8. go gin框架:StaticFS搭建文件服务器(可以加载文件夹及文件)
  9. zookeeper 3.6.2启动报错:找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
  10. go切片的定义及make使用