2月5-7日QCon全球软件开发大会携手100+位大咖讲师落定北京,点击查看完整日程>> 了解详情
写点什么

Spark 3.0 新特性抢先看

Spark 3.0 新特性抢先看

  • 2020-05-07
  • 本文字数:1024 字

    阅读完需:约 3 分钟

Spark 3.0 新特性抢先看

记得 Databricks 研发工程师王耿亮老师去年在分享 Spark 新特性议题的时候,稍微透露了一些 关于 Spark 3.0 版本特性的内容,但具体的性能细节可以关注今年 ASF 和 Apache Spark PMC 最终的发布信息。这里做一些简单的介绍,具体技术细节请关注 9 月 11 日深圳站ArchSummit全球架构师峰会演讲。



Accelerator-aware Scheduler

作为 Project Hydrogen 的延续,在 Spark 3.0 版本里支持 GPU Aware Scheduling 调度,广泛用于加速特定应用,比如深度学习等。


自适应查询优化

这是 Databricks 和 Intel 中国团队在做的项目(SPARK-31412),基于已完成的执行计划节点的统计数据,优化剩余的查询执行计划,它能够支持:动态合并小的 partition 减少 Reducer 的数量;将 Sort Merge Join 转换为 Broadcast Hash Join;动态分割相对比较大的 partition 从而更好地处理数据倾斜。以下图为例:



这是一个典型的 Spark 任意操作过程,读取两个文件,而使用 Adaptive Execution 方法之后,将 Sort Merge Join 转换为 Broadcast Hash Join,性能也有了很大的提升。


Data Source API V2

发布 Data Source API,其设计比较合理,性能更稳定,批处理和流处理使用统一的 API。其背后的历史原因是,第一个版本的 Data Source API 在实现 Data Source 过程中不是很方便,后来做了 FileFormat。但是流处理的时候又使用另一套 API。所以社区花了很多时间把 API 都整合起来,并且增加了新的 Catalog plugin API(SPARK-31121)。


Apache Spark 3.0 其他目标:

  1. 支持 JDK 11

  2. 动态分区剪枝 (SPARK-11150)

  3. Redesigned pandas UDFs with type hints (SPARK-28264)


• 支持 Hadoop 3.x


• Hive execution 从 1.2.1 升级至 2.3.7


• Scala 2.12 GA


• 更加遵从 ANSI compliance


• Structured Steaming UI


Pandas DataFrame vs Spark DataFrame


很多数据科学家之前在学数据分析的时候使用 Python 的 Pandas,但是真正到了生产环境,Pandas 只能运行在一台机器上,而且是单线程,性能和可扩展性有限。这个时候需要转到 Spark,但是受到 API 区别,所以会有一些局限。



但是后来开源了 Koalas,目标是使用 Pandas API 可以直接运行在 Spark,能够支持数据科学家更好的无缝迁移到 Spark。


【活动推荐】

关于 Spark 3.0 新特性的解读,我们邀请王耿亮老师在今年 9 月 11 日 ArchSummit 全球架构师峰会(深圳站)上详细介绍,包括 Delta Lake 新功能介绍、设计思路细节、用户在使用过程中遇到的坑(案例),以及解决方法。感兴趣的可以点击查看会议官网了解详情。


2020-05-07 14:272318
用户头像

发布了 125 篇内容, 共 47.7 次阅读, 收获喜欢 161 次。

关注

评论 2 条评论

发布
用户头像
求门票
2020-05-09 00:24
回复
哥哥,免费无好货,来,我给你折扣票,内容保质保量。欢迎联系。
2020-05-13 21:43
回复
没有更多了
发现更多内容

2022vue面试题+答案

buchila11

Vue Vue 3

架构之:微服务和单体服务之争

程序那些事

微服务 系统架构 软件架构 程序那些事

富文本编辑器之游戏角色升级ing

vivo互联网技术

Java 大前端 富文本 富文本编辑器

快看吧系统开发|快看吧软件APP开发

聚星公社软件开发|聚星公社APP系统开发

聊聊志愿填报那点事儿

萧文翰

Redisson 分布式锁源码 03:可重入锁互斥

程序员小航

redis 源码 分布式锁 redisson

@Autowired报错原因分析和4种解决方案!

王磊

Java spring springboot @Autowired注入原理 Autowired

IPC阿波罗公链软件系统开发搭建

根据舌苔判断身体状况

kof11321

项目经理的职责和权限分别是什么?

万事ONES

项目管理 ONES 项目经理

JavaScript数组详解-全网最全

二郎神杨戬

7月日更

如何给MindSpore添加一个新的硬件后端?快速构建测试环境!

华为云开发者联盟

AI 模型 框架 mindspore

如何做需求分析?

万事ONES

产品经理 需求分析 ONES

架构实战营模块 7

阿体

海洋之星系统开发|海洋之星软件APP开发

一条SQL语句执行的背后

卢卡多多

log sql 更新 执行顺序 7月日更

UD众筹链/UD生态系统APP开发详情

社交软件上“你可能认识的人”到底是怎么找到你的?

华为云开发者联盟

知识图谱 社交软件 TransE模型 用户画像 知识图谱补全

GIN钱包挖矿系统开发|GIN钱包挖矿软件APP开发

XRP瑞波币系统开发|XRP瑞波币软件APP开发

【Flutter 专题】96 图解 Draggable + DragTarget 基本拖拽效果

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

Go 学习笔记之 整型数据类型

架构精进之路

Go 语言 7月日更

Camtasia实用技巧之智能聚焦

淋雨

视频剪辑 Camtasia 专业录屏

多标签分类中的损失函数与评价指标

月来客栈

PyTorch 多标签 多标签分类 文本分类

Rust从0到1-Cargo-发布到Crates.io

rust 发布 cargo crates.io publish

联想科技产业行——大众集团走进联想:智慧科技赋能汽车行业智能化变革

科技大数据

科技互联网 新未来 联想

微摩尔WMO软件系统开发介绍

北鲲云超算平台——致力于提高科研效率,降低计算成本的云超算平台

北鲲云

BHDEX币挖矿APP系统开发内容

Vue.js+ElementUI+vant生成动态表单配置

二郎神杨戬

7月日更

Spark 3.0 新特性抢先看_架构_薛梁Lucien_InfoQ精选文章