QCon上海站购票倒计时最后3天!查看精彩日程 了解详情
写点什么

Spark 3.0 新特性抢先看

Spark 3.0 新特性抢先看

2020 年 5 月 07 日

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 年 5 月 07 日 14:272043
用户头像

发布了 102 篇内容, 共 34.1 次阅读, 收获喜欢 110 次。

关注

评论 2 条评论

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

毕业设计:设计电商秒杀系统

小荷才露尖尖角

#架构实战营

RocketMQ之Store模块

邱学喆

commitlog consumequeue index ha flush

【Flutter 专题】71 图解基本隐式动画 Widget

阿策小和尚

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

服务端压力测试笔记

刘帅强

极客时间《趣谈Linux学习笔记》

刘帅强

软件测试常见技术

刘帅强

Python代码阅读(第8篇):列表元素逻辑判断

Felix

Python 编程 Code Programing 阅读代码

oeasy教您玩转vim - 12 - # 词头词尾

o

前端之数据结构(六)图

Augus

数据结构 8月日更

《社会心理学》--从众和服从

箭上有毒

8月日更

白话机器学习(7):人类最好理解的预测模型-决策树Decision Tree

杜吉普

如何加强自己对Java的编码规范

Bob

Java 8月日更

白话机器学习(9):用户精细化管理背后的秘密:K-means聚类模型

杜吉普

机器学习

杜吉普:指标体系多重奏——指标体系建立思路

杜吉普

数据分析 指标体系 数据运营

杜吉普:数字化运营广告营销之道

杜吉普

机器学习 互联网广告 营销数字化

Android开发:获取手机当前连接的WiFi名称

三掌柜

8月日更 8月

接口测试笔记

刘帅强

软件测试笔记---移动端专项测试

刘帅强

白话机器学习(4):模型的裁判-交叉验证Cross-Validation

杜吉普

机器学习 杜吉普

Web---UI自动化测试

刘帅强

docker入门:单机elasticsearch安装记录,保证无坑

小黄鸡1992

8月日更

Spring梳理

十二万伏特皮卡丘

架构实战营 - 毕业总结

༺NPE༻

白话机器学习(5):更高端的线性回归模型-Ridge Regression

杜吉普

机器学习

[架构实战营一期] 模块四作业

trymorewang

架构实战营

白话机器学习(8):世界上本没有随机森林,决策树多了,也就变成了森林

杜吉普

机器学习

SpringBoot 数据库操作(集成MyBatis)

xcbeyond

mybatis SpringCloud 8月日更

数据产品经理是做什么的?

蒋川

Druid 加载 Kafka 流数据 Supervisor 配置

HoneyMoose

软件测试与持续集成

刘帅强

白话机器学习(6):用Lasso Regression踢出浑水摸鱼的变量

杜吉普

机器学习

Spark 3.0 新特性抢先看-InfoQ