来自马铁大神的Spark10年回忆录
本篇分享来自Martei在Spark AI Submit 2020的开场分享。
马铁是谁
什么!你不知道马铁是谁?Martei Zaharia(说实话,不知道谁给起的中文名字叫马铁,跟着叫就是了),现任Databricks的CTO,也许Databricks你也不是很熟,Spark总是听过的吧?可以说Spark就出自Martei之手,项目开源后组了个公司专门基于Spark提供企业服务。
先来看看Martei大神在LinkedIn的简历,你就知道他的背景有多牛了:
- 2003-2007,就读于滑铁卢大学(加拿大前三的大学)
- 2007-2012,就读于加州伯克利读博,其中07年在google实习3个月,08年在facebook实习一年.
- 2015-2016,在MIT麻省理工任副教授。
- 2016-至今,在斯坦福任副教授。
- 从09年开始加入Apache,成为hadoop的commiter,14年开始成为apache spark的VP,13年开始担任Databricks的CTO。
可以说想要学习现在最先进的分布式知识,follow下马铁的twitter就行了。
Spark的过去10年
回头再来说说本次的分享,显示回忆了Spark的发展历程,然后介绍了当前Spark 3.0的主要特性,介绍Spark相关的生态组件。中间有美女介绍了koalas的使用以及3.0相关的特性展示。最后Martei推荐了《Learning Spark》第二版这本书。最后展望Spark的未来表示会持续优化 Spark 在探索数据分析和生产应用上的易用性,丰富Spark生态体系。
- 2007年Martei攻读博士,主要的研究方向是p2p系统。
- 2008年在雅虎和facebook开始接触数据中心,涉及到分布式与大数据计算。可惜当时的分布式计算主要是依赖于MapReduce,编写困难,缺乏交互式的查询,也不支持机器学习。
- 2009回到伯克利开始研究分布式机器学习框架,开始了Spark相关的工作。
- 2010年开源了第一版的Spark。
- 2010-2011年针对社区的需求,开始了交互式查询、Streaming流处理、R和SQL API的支持等工作。
- 2012-2015年,丰富了Spark的生态,支持更多的API,比如Python、R、SQL;支持更多的组件库,如机器学习、图计算、流计算;支持更高级的API,比如DataFrame、Spark SQL等。
至今为止,有68%的用户在notebook中使用Python操作Spark;超过90%的API通过Spark SQL来执行。
总结过去的Spark开源10年历程,得到最大的经验就是:
- 1 产品的易用性,无论是数据探索还是生产应用
- 2 API的最佳实践,比如组件、测试、模块化。
Spark 3.0
最近Spark发布了3.0版本,超过3400多次升级特性,46%与SQL相关:

最主要的特性有:
- 1 AQE,自适应查询计划。比如动态调整分区数、动态调整join算法、自动处理数据倾斜问题
- 2 动态分区裁剪
- 3 编译器速度优化
- 4 优化器代码提示
- 5 ANSI SQL的支持
- 6 Python API的优化
- 7 R API的优化
- 8 新的流处理UI、更易用的流指标统计、SQL使用文档、Data Source V2 API、GPU加速等。
相关的特性再上一篇也有介绍过,详情前一篇文章:Spark 3.0 新特性
Spark的生态

比如:
- 1 基于pandas API调用Spark的Koalas
- 2 支持批流一体化的Delta Lake
- 3 Sklearn、Hyperort、Joblib等基于Spark的分布式扩展方案
- 4 用于大规模基因分析的GLOW
- 5 用于GPU加速的python库rapids
- 6 用于可视化的tableau, qlik, looker, redash等
参考
- Martei的LinkedIn:https://www.linkedin.com/in/mateizaharia/
最后关注公众号,可以直接观看文中视频,回复 learning spark 就可以获得对应的电子书。
来自马铁大神的Spark10年回忆录的更多相关文章
- css3 斜切角/斜边的实现方式来自BAT大神的出品
设计图含有斜切角的效果时,我们一般想到的方法是切出四个角为背景,然后用border连起来,这样就能显示出该效果了,那么直接使用css呢?下面就整理css做斜边的效果. 1.方案一:利用linear-g ...
- 对话机器学习大神Yoshua Bengio(上)
Yoshua Bengio教授(个人主页)是机器学习大神之一,尤其是在深度学习这个领域.他连同Geoff Hinton老先生以及 Yann LeCun(燕乐存)教授,缔造了2006年开始的深度学习复兴 ...
- 对话机器学习大神Yoshua Bengio(下)
对话机器学习大神Yoshua Bengio(下) Yoshua Bengio教授(个人主页)是机器学习大神之一,尤其是在深度学习这个领域.他连同Geoff Hinton老先生以及 Yann LeCun ...
- 为何你跟着滴滴D8级前端大神撸代码,技术却依旧原地踏步?
引子 听说最近有很多小伙伴,热衷于在慕课网上学习各种前端实战教程,并以完成项目为奋斗目标.比如本文接下来要提到的<Vue2.0高级实战之开发移动端音乐App>,这门课程的传授者是来自滴滴D ...
- 大神都在看的RxSwift 的完全入坑手册
大神都在看的RxSwift 的完全入坑手册 2015-09-24 18:25 CallMeWhy callmewhy 字号:T | T 我主要是通过项目里的 Rx.playground 进行学习和了解 ...
- AlexeyAB大神版yolo 待完善
目录 darknet优化经验 1. AlexeyAB改进项 2. Linux下编译选项 3. 训练经验 4. 提升检测效果 5. 总结 6. AlexeyAB大神改进 darknet优化经验 主要来自 ...
- darknet优化经验-AlexeyAB大神经验
目录 darknet优化经验 1. AlexeyAB改进项 2. Linux下编译选项 3. 训练经验 4. 提升检测效果 5. 总结 6. AlexeyAB大神改进 darknet优化经验 主要来自 ...
- 大神的P图过程!快来偷窥!
来自美国的艺术家James(@jameasons) 平时我们总是能看到一些大神合成出这样的图片, 但是他们P图的过程是怎样的,很多人都是不知道的. 接下来再看看这位大神的其他作品, 如果你看了上面视频 ...
- 【转】hurry_liu 大神STM32移植contiki入门之一:系统介绍和开发环境搭建
前言: 由于项目的原因,需要在LPC1788(STM32 cortex-M3)上面跑contiki. 之前没有涉及到contiki,不知其为何物.不过这个不是难事,做IT的,每每遇到新事物,都不会处理 ...
随机推荐
- 洛谷 P2296 【寻找道路】
这道题真的很女少啊 言归正传: 这道题其实就是考验的思路,读题后,我们发现对于某个点他所连接的点必须连接终点,那么我们直接反向存图,从终点进行bfs,可以找到未连接的点,然后对这些点所连接的点进行标记 ...
- 堆/题解 P3378 【【模板】堆】
概念: 堆就是一颗二叉树,满足父亲节点总是比儿子节点大(小).因此,堆也分为大根堆和小根堆,大根堆就是父亲节点比儿子节点大,小根堆正好相反.注意加粗的地方,是每一个节点哦!!!!! 还是直接看例题吧, ...
- Centos7解压Zip文件
一.安装支持ZIP的工具 yum install -y unzip zip 二.解压zip文件 unzip 文件名.zip 三.压缩一个zip文件 zip 文件名.zip 文件夹名称或文件名称
- 阿里云centos7安装jdk8
1.准备Linux版本的jdk8直接上Oracle公司的官网下载就好了 http://www.oracle.com/technetwork/java/javase/downloads/jdk8- ...
- Repeater 横向显示数据
<asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <ul s ...
- 初步了解JVM
先看一眼JVM虚拟机运行时的内存模型: 1.方法区 Perm(永久代.非堆) 2.虚拟机栈 3.本地方法栈 (Native方法) 4.堆 5.程序计数器 1 首先的问题是:jvm如何知道那些对象需要回 ...
- 常见Python的Web开发框架
在今天,Python里有很多开发框架用来帮助你轻松创建web应用.web开发框架存在的意义就在于可以快速便捷的构建应用,而不用去在意那些没必要的技术细节(协议.报文.数据结构). 到2020年为止,基 ...
- 奇妙的 CSS MASK
本文将介绍 CSS 中一个非常有意思的属性 mask . 顾名思义,mask 译为遮罩.在 CSS 中,mask 属性允许使用者通过遮罩或者裁切特定区域的图片的方式来隐藏一个元素的部分或者全部可见区域 ...
- day17 生成器, 面向过程, 三元表达式, 生成式
1. 生成器 生成器:就是一种自定义的迭代器,是用来返回多次值自定义迭代器的好处:节省内存 return只能返回一次值,函数就立即结束了yield 1.可以挂起函数,保存函数的运行状态 2.可以用来返 ...
- 使用eval将字符串转化成字典时报name 'null' is not defined错误解决办法
在接口测试过程中,为了取值将形如字典形式的字符串使用eval()方法转化成字典方便取值 str={"code":100,"num":1,"data&q ...