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

4 篇文章 4 订阅
2 篇文章 0 订阅
本篇内容来自2019年云栖大会,分享了Apache Spark 3.0的预览版及Koalas的发展,讨论了动态分区裁减、自适应执行等查询优化技术。Apache Spark 3.0旨在提升性能,支持更多如Spark on k8s、DataSource API V2等功能,并介绍了统一大数据处理引擎Spark与Python pandas库的桥梁——Koalas。
摘要由CSDN通过智能技术生成

本资料来自2019-09-26在杭州举办的云栖大会的大数据 & AI 峰会分会。议题名称《New Developments in the Open Source Ecosystem: Apache Spark 3.0 and Koalas》,分享嘉宾李潇,Databricks Spark 研发总监。

本次会议的完整视频和 PPT 请关注 过往记忆大数据 公众号并回复 spark_yq 获取。

2019年对 Spark 社区来说是一个比较特殊的年份。10年前,马铁为了帮助自己的同学得到 Netflix 发起的 Netflix Prize 竞赛百万美金,诞生了一个伟大的项目,这就是现在的 Apache Spark。

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

上面就是 Apache Spark 的发展历史。2019年09月将会发布 Apache Spark 3.0 预览版,明年年初将会发布 Apache Spark 3.0 正式版。

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

世界级的知乎 stackoverflow 中当年 Spark 和 PySpark 排名都很靠前,10年累计排名 Apache Spark 第一,Apache Hadoop 第二;未来 Apache Spark 和 PySpark 将会垄断世界。

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

Apache Spark 3.0 是社区共同努力的结果,大概开发了一年多。下面是 Apache Spark 3.0 的主要特性:

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

下面主要介绍 Apache Spark 3.0 在查询方面的优化

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

在 Spark 2.x 里面加了基于代价的优化,但是这个并不表现的很好。主要有以下几个原因:

  • 统计信息的缺失;
  • 统计信息过期;
  • 很难抽象出一个通用的 cost model。

为了解决这些问题,Apache Spark 3.0 引入了基于 Runtime 的查询优化。

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

第一个就是动态分区裁减

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

比如上面的 SQL 查询,假设 t2 表 t2.id < 2 过滤出来的数据比较少,但是由于之前版本的 Spark 无法进行动态计算代价,所以可能会导致 t1 表扫描出大量无效的数据。有了动态分区裁减,可以在运行的时候过滤掉 t1 表无用的数据

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

经过这个优化,查询扫描的数据大大减少,性能提升了 33 倍

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

第二个优化就是 AE(详情可以参见 Adaptive Execution如何让Spark SQL更高效更好用?)。

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

比如下面的查询,基于代价的模型优化不可能准确的评估,

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

而有了 AE 之后,Spark 就可以动态统计相关信息,并动态调整执行计划,比如把 SortMergeJoin 变成 BroadcastHashJoin:

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

Spark 在诞生之初就定位于统一的大数据处理引擎。

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

数据处理主要经过以下三个阶段

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

  • 商业智能
  • 大数据分析
  • 数据统一 + AI

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

Spark 主要面对的是两个群体:数据工程师和数据科学家。

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

近几年 Python 的使用者越来越多了,也导致越来越多的用户使用 pandas 来进行数据分析。但是 pandas 主要是解决小数据量的分析,当数据量大的时候,分析性能急剧下降。而为了进行大数据量的分析时,不得不学习新的计算引擎。

为了解决这个问题,Spark 开源了 koalas,其和 pandas 无缝兼容(koalas 的详细信息可以参见 Koalas: 让 pandas 开发者轻松过渡到 Apache Spark)。下面就是自 koalas 开源以来的单日下载量:

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

PySpark 作为数据分析的工具,单日下载量也在逐渐增加。

下面是 PySpark DataFrame 和 pandas DataFrame 的区别:

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

下面是一个使用例子对比,主要是读取一个 csv 文件,并重命名列的名字,最后再添加一个新的列:

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

可以看出,PySpark 相比 pandas 来说使用起来还是很麻烦,使用 pandas 的用户不得不学习新的 API,但是有了 koalas ,这个问题不存在了:

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

下面我们来介绍数据工程

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

在数据工程方面,数砖开源了 Delta Lake(具体参见 重磅 | Apache Spark 社区期待的 Delta Lake 开源了):

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

Delta Lake 并不是凭空产生的,而是基于成千上万的用户痛点总结出来的。Delta Lake 的使用也很方面,直接把 parquet 替换成 delta:

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

下面主要介绍 Delta Lake 的特性

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

下面是 Delta Lake 的三个用户使用场景:

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

下面是数砖 Delta 的使用情况:

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值