写点什么

如何弥合 Spark Datasets 和 DataFrames 之间的性能差距?

  • 2019-08-15
  • 本文字数:2167 字

    阅读完需:约 7 分钟

如何弥合 Spark Datasets 和 DataFrames 之间的性能差距?

ArchSummit深圳2019大会上,蔡東邦 (DB Tsai)讲师做了《如何弥合 Spark Datasets 和 DataFrames 之间的性能差距?》主题演讲,主要内容如下。


演讲简介


Bridging the gap between Spark Datasets and DataFrames


Apple leverages Apache Spark for processing large datasets to power key components of Apple’s production services. The majority of users rely on Spark SQL to benefit from state-of-the-art optimizations in Catalyst and Tungsten. As there are multiple APIs to interact with Spark SQL, users have to make a wise decision which one to pick. While DataFrames and SQL are widely used, they lack type safety so that the analysis errors will not be detected during the compile time such as invalid column names or types. Also, the ability to apply the same functional constructions as on RDDs is missing in DataFrames. Datasets expose a type-safe API and support for user-defined closures at the cost of performance.


译文参考:


Apple 利用 Apache Spark 处理大型数据集,为 Apple 生产服务的关键组件提供动力。 大多数用户依靠 Spark SQL 从 Catalyst 和 Tungsten 中最先进的优化中受益。由于有多个 API 与 Spark SQL 交互,因此用户必须明智地决定最终选择哪一个。虽然 DataFrame 和 SQL 被广泛使用,但它们缺乏类型安全性,因此在编译期间无法检测到分析错误,例如无效的列名称或类型。此外,在 RDDs 上应用相同功能结构的功能却不能在 DataFrames 中使用。Datasets 以牺牲性能为代价公开了类型安全的 API,并支持用户定义的闭包。


This talk will explain cases when Spark SQL cannot optimize typed Datasets as much as it can optimize DataFrames. We will also present an effort to use bytecode analysis to convert user-defined closures into native Catalyst expressions. This helps Spark to avoid the expensive conversion between the internal format and JVM objects as well as to leverage more Catalyst optimizations. A consequence, we can bridge the gap in performance between Datasets and DataFrames, so that users do not have to sacrifice the benefits of Datasets for performance reasons.


本演讲将重点介绍 Spark SQL 无法优化类型化 Datasets 的情况,因为它可以优化 DataFrame。我们还将努力使用字节码分析将用户定义的闭包转换为本机 Catalyst 表达式。这有助于 Spark 避免在内部格式和 JVM 对象之间的昂贵转换,以及利用更多的 Catalyst 优化。因此,我们可以弥合 Datasets 和 DataFrames 之间的性能差距,这样用户就不会因性能原因而牺牲 Datasets 的优势。


Outlines of the speech


  1. Apache Spark

  2. Dataframe vs Dataset

  3. Bytecode Analysis

  4. JVM GC


Key points


  • The audiences will learn how Apache Spark works internally; particularly on how catalyst optimizer optimizes the execution plans.

  • Then I will go through the current problems of Spark’s Dataset implementation which expose a type-safe API and support for user-defined closures at the cost of performance.

  • Finally, I’ll talk about how we do bytecode analysis to understand the JVM bytecode, and then convert them into SQL expressions for further optimization. In some of our Spark jobs, we see 40x performance gain resulting less required resource and faster deliver time.

  • 帮助听众了解 Apache Spark 内部的工作流程,尤其是 Catalyst 优化器如何优化执行计划。

  • 了解 Spark Dataset 当前在应用方面的问题,这些问题公开了类型安全的 API,并以性能为代价支持用户定义的闭包。

  • 最后,我将分享我们是如何实现字节码分析的案例,帮助理解 JVM 字节码,然后将它们转换为 SQL 表达式以进一步优化。在我们所做的一些 Spark 工作中,我们看到了 40 倍的性能提升,从而减少了所需的资源,交付时间也更快。


讲师介绍


蔡東邦 (DB Tsai)


Apple Staff Software Engineer & Apache Spark PMC


DB Tsai is an Apache Spark PMC / Committer and an open source and staff software engineer at Apple Siri. He implemented several algorithms including linear models with Elastici-Net (L1/L2) regularization using LBFGS/OWL-QN optimizers in Apache Spark. Prior to joining Apple, DB worked on Personalized Recommendation ML Algorithms at Netflix. DB was a Ph.D. candidate in Applied Physics at Stanford University. He holds a Master’s degree in Electrical Engineering from Stanford.


译文参考:


蔡東邦老师是 Apache Spark PMC / Committer,同时也是 Apple Siri 的主任工程师。他将多个算法应用到了 Apache Spark 当中,包括使用了 LBFGS / OWL-QN 优化器 的 Elastici-Net(L1 / L2)正则化的线性模型。在加入 Apple Siri 之前,蔡老师在 Netflix 从事个性化推荐机器学习算法的研究工作。目前是斯坦福大学应用物理专业的博士候选人,也获得了斯坦福大学电气工程硕士学位。












完整演讲 PPT 下载链接


https://archsummit.infoq.cn/2019/shenzhen/schedule


2019-08-15 00:005909

评论

发布
暂无评论
发现更多内容

淘天集团5篇论文入选NeurIPS,阿里妈妈自动出价比赛决赛白热化

新消费日报

通过Forcebot压测实践简述“并发模式”与“RPS模式”两种模式的区别

京东科技开发者

从混乱到可控:非结构化数据在远程监造中的作用

奇点云

人工智能 软件 IT 制造业

第三届OpenHarmony技术大会OS内核及视窗分论坛圆满举办

科技热闻

技术干货|企业如何通过创建可持续能源的数字孪生,实现即时洞察

Altair RapidMiner

人工智能 汽车 数字孪生 仿真 altair

IT服务管理三重奏:SLA、SLO、SLI

ServiceDesk_Plus

SLA IT服务管理

5分钟了解软件开发的20项基本原则

俞凡

架构 最佳实践

某市驾驶培训监管服务平台 GreatSQL 数据库适配之旅

GreatSQL

一站实现高效开发,鸿蒙生态伙伴模板&组件专区全新上线

最新动态

软件测试学习笔记丨接口自动化框架

测试人

软件测试

CST电磁仿真技术:引领时代发展的前沿

思茂信息

电磁 仿真 cst

2025北京智能科技产业博览会(世亚智博会)

AIOTE智博会

智博会 世亚智博会 智能科技展 智能科技博览会

测试聊并发-入门篇

京东科技开发者

海外专线:提升国外网站访问效率的方法

Ogcloud

企业组网 企业网络 海外网络专线 海外网络访问

运维黑匣子作用是什么?堡垒机是运维黑匣子吗?

行云管家

运维 堡垒机 黑匣子

Vite打包碎片化,如何化解?

不在线第一只蜗牛

Java 前端 服务器

SD-WAN与传统WAN的区别

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

约80%开发效率提升,原生鸿蒙政务、文旅行业样板间专区上线

最新动态

三亚等保测评公司有哪些?在哪里?

行云管家

等保 等级保护 三亚

阿里巴巴中国站商品详情API返回值的未来发展趋势

技术冰糖葫芦

API 接口 API 文档 API 测试 pinduoduo API

解读Kuasar多沙箱容器技术,带来更强隔离性和安全性

华为云开发者联盟

Kubernetes 容器 沙箱

90后程序员的职业成长漫谈

京东科技开发者

中国3-6岁儿童人群需求与行为洞察

易观分析

文献解读-Chromosome-Level Genome Assembly of the Green Peafowl (Pavo muticus)

INSVAST

基因数据分析 生信服务

DeFi复兴:让DeFi再次伟大

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

2024后量子区块链峰会:连接Web3、安全与后量子密码学的未来

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

GenAI 时代的软件架构和设计:机遇、挑战和未来

俞凡

人工智能 架构

如何弥合 Spark Datasets 和 DataFrames 之间的性能差距?_ArchSummit_蔡東邦 (DB Tsai)_InfoQ精选文章