本资料来自2019-09-26在杭州举办的云栖大会的大数据 & AI 峰会分会。议题名称《New Developments in the Open Source Ecosystem: Apache Spark 3.0 and Koalas》,分享嘉宾李潇,Databricks Spark 研发总监。
下面是本次会议的视频(由于微信公众号的限制,只能发布小于30分钟的视频,完整视频和 PPT 请关注 过往记忆大数据 公众号并回复 spark_yq 获取。
2019年对 Spark 社区来说是一个比较特殊的年份。10年前,马铁为了帮助自己的同学得到 Netflix 发起的 Netflix Prize 竞赛百万美金,诞生了一个伟大的项目,这就是现在的 Apache Spark。

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

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

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

  • 动态分区裁减

  • 自适应

  • Spark Graph

  • 加速感应调度(GPU,具体参见 )

  • Spark on k8s

  • DataSource API V2

  • ANSI SQL 兼容

  • SQL Hints

  • Vectorization in SparkR

  • JDK 11

  • Hadoop 3

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

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

  • 统计信息的缺失;

  • 统计信息过期;

  • 很难抽象出一个通用的 cost model。
为了解决这些问题,Apache Spark 3.0 引入了基于 Runtime 的查询优化。

第一个就是动态分区裁减

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

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

第二个优化就是 AE(详情可以参见

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

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

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

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

  • 商业智能

  • 大数据分析

  • 数据统一 + AI

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

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

为了解决这个问题,Spark 开源了 koalas,其和 pandas 无缝兼容(koalas 的详细信息可以参见 koalas 开源以来的单日下载量:

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

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

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

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

下面我们来介绍数据工程

在数据工程方面,数砖开源了 Delta Lake(具体参见

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

下面主要介绍 Delta Lake 的特性

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

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


新福利:

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

上周获奖名单:ZRTX

猜你喜欢

1、

2、

3、

4、

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

云栖大会 | Apache Spark 3.0 和 Koalas 最新进展相关推荐

  1. 2019云栖大会精品资料下载

    https://developer.aliyun.com/article/719452?spm=a313p.198.plec.1067371257172&short_name=I3.B6QL& ...

  2. 2017云栖大会门票转让_「揭秘GP」云栖大会 | Greenplum 6.0 内核优化解读和7.0展望...

    9月25日,云栖大会在杭州阿里巴巴云栖小镇正式拉开序幕,三天会议期间,共吸引了200多位世界级科学家.400多家科技合作伙伴参与,科技展区面积超过3万平方米,共发布了1000多项顶尖技术. 云栖大会现 ...

  3. 【图文】云栖大会深圳峰会:阿里云ET医疗大脑与工业大脑,机器学习平台PAI2.0...

    阿里云新征程:通往智能之路!正式发布ET工业大脑,ET医疗大脑和机器学习平台PAI2.0,阿里云的目标是成为万物智能化的基础设施和智能引擎! 2017年3月27日至29日,云栖大会于深圳举行.29日为 ...

  4. Quick BI v3.0版本全新起航——2018杭州云栖大会

    在9月22日杭州云栖大会云上数据中台专场中,阿里巴巴产品专家陌停跟现场的观众们分享了Quick BI v3.0版本的新体验.新分析和新功能. 作为一个高效数据分析与展现的BI套件,Quick BI通过 ...

  5. 阿里云栖大会首日:成立芯片公司“平头哥”,发布城市大脑2.0

    今天,一年一度的云计算峰会--云栖大会在杭州开幕.大会首日,阿里不仅发布了城市大脑2.0,更是宣布成立"平头哥半导体有限公司"开发AI芯片,引起众人关注. 在一年前的云栖大会上,阿 ...

  6. 马云老师开讲新制造,成立平头哥芯片公司,发布城市大脑V2.0,阿里云栖大会重磅发布!...

    杭州西湖,云栖小镇,主题为"驱动数字中国"的2018杭州•云栖大会今天正式开幕. 2016年云栖大会,马云首次提出"五新"战略(新零售.新金融.新制造.新技术. ...

  7. 重磅干货不容错过!2017云栖大会汇总资料,速来领取!

    原文链接:点击打开链接 摘要: 2017云栖大会圆满结束!云栖大会由阿里巴巴集团主办,已经成为全球云计算TOP级峰会,汇聚DT时代最强大脑,描绘云计算发展趋势和蓝图,展现云计算.大数据.人工智能蓬勃发 ...

  8. 云栖大会|小米大数据运维管理体系的建设与实践

    前言 前段时间,很荣幸能参加云栖大会,并和大家分享一个议题,接下来我们来回顾一下 介绍 这次给大家带来的题目是<小米大数据运维管理体系的建设和实践> 今天整个分享分两部分,第一部分我们先来 ...

  9. 好东西来了!2017云栖大会400+份重磅资料下载

    上个月在杭州举行的云栖大会广州云栖大会正在报名中吸引了全球67个国家和地区近6万人现场参会1500万人在线观看.有140多场技术主题论坛共计800多个主题分享涵盖人工智能.金融科技.量子计算.生命科学 ...

最新文章

  1. matlab 算法设计,计算方法——算法设计及其MATLAB实现
  2. hdu3622 二分+2sat
  3. git ssh 绑定 GitLab
  4. html5背景图片上放按钮,html5自定义video标签的海报与播放按钮
  5. python弹球游戏绑定鼠标事件_用python和pygame游戏编程入门-弹球[鼠标控制]
  6. iOS:通信录(完成)(18-01-18更)
  7. 加拿大计算机专业学什么,加拿大哥伦比亚大学计算机专业课程
  8. 代码执行漏洞原理/防御
  9. Linux命令 lsof -i:端口号 ——有什么用途
  10. who 、w 查看当前登录用户
  11. 基于SSM的运动会管理系统
  12. 去除 AutoCAD 2013 x64 教育版打印戳记
  13. nvidia显卡驱动安装失败怎么办?
  14. ABT 共识社区北京聚会 共建去中心化生态 | ArcBlock 社区
  15. 【OUC深度学习入门】第4周学习记录:MobileNetV1, V2, V3
  16. BitLocker解锁之后加锁
  17. c语言 字符串switch,C++中如何对字符串进行switch
  18. uni-app开发h5 发布后背景图片找不到路径
  19. 中国到美国寄国际快递怎么收费
  20. python dataframe去掉索引_python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)...

热门文章

  1. 局部连接层(Locally-Connected Layer)
  2. 驱动仿真物品移动乌龟\Gazebo\cmd_vel和/gazebo/set_model_state
  3. Linux虚拟机下WWW(HTTP)服务器的搭建与使用(详细)
  4. vue实现前端人机验证
  5. TensorFlow的常量、变量、常用函数(一)
  6. 全能修图工具:Pixelmator Pro for Mac
  7. twr java_Java7新特性 - TWR(try-with-resources)
  8. 炫酷的 loding效果(canvas)
  9. MFC中Wnd.PostMessage()的作用
  10. 二阶魔方入门玩法教程