写点什么

把嵌套列表作为 Apache Spark SQL 的首选

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

    阅读完需:约 5 分钟

把嵌套列表作为 Apache Spark SQL 的首选

ArchSummit深圳2019大会上,蔡東邦 (DB Tsai)讲师做了《把嵌套列表作为 Apache Spark SQL 的首选》主题演讲,主要内容如下。


演讲简介


Making Nested Columns as First Citizen in Apache Spark SQL


Apple Siri is the world’s largest virtual assistant service powering every iPhone, iPad, Mac, Apple TV, Apple Watch, and HomePod. We use large amounts of data to provide our users the best possible personalized experience. Our raw event data is cleaned and pre-joined into an unified data for our data consumers to use. To keep the rich hierarchical structure of the data, our data schemas are very deep nested structures. In this talk, we will discuss how Spark handles nested structures in Spark 2.4, and we’ll show the fundamental design issues in reading nested fields which is not being well considered when Spark SQL was designed. This results in Spark SQL reading unnecessary data in many operations. Given that Siri’s data is super nested and humongous, this soon becomes a bottleneck in our pipelines.


Then we will talk about the various approaches we have taken to tackle this problem. By making nested columns as first citizen in Spark SQL, we can achieve dramatic performance gain. In some of our production queries, the speed-up can be 20x in wall clock time and 8x less data being read. All of our work will be open source, and some has already been merged into upstream.


参考译文:


Apple Siri 是世界上最大的虚拟助理服务,为每部 iPhone,iPad,Mac,Apple TV,Apple Watch 和 HomePod 提供服务支持。我们使用大量数据来为用户提供最佳的个性化体验。所有的原始事件数据被清理并预先加入到统一数据中,供我们的数据使用者使用。为了保持数据的丰富层次结构,我们的数据模式采用了非常深的嵌套结构。


在本次演讲中,我将讨论 Spark 如何处理 Spark 2.4 中的嵌套结构,还会展示读取嵌套字段时的基本设计问题,这些问题在设计 Spark SQL 时并未得到充分考虑。这就导致了 Spark SQL 在许多操作中读取不必要的数据。鉴于 Siri 超级嵌套的数据非常庞大,它很快就成了瓶颈所在。


之后,我会介绍为解决这个问题所采取的各种方法。将嵌套列作为 Spark SQL 中的第一个公民,在性能上获得显着的提升。在我们的一些生产查询中,加速 20 倍,读取的数据减少 8 倍。我们所有的工作都将开源,有些已经合并到了核心区域。


讲师介绍


蔡東邦 (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:009514

评论

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

【融云技术】Native C/C++ 服务适配多指令集 CPU 漫谈

融云 RongCloud

「SQL数据分析系列」5. 多表查询

Databri_AI

数据库 sql 查询语句

深入了解Spring框架之WebMVC框架

邱学喆

spring webmvc HandlerMethod HandlerInterceptor

短链接生成算法

Skysper

算法

负载均衡算法之二 - 以 Golang 方式

hedzr

Go 语言 load-balancing weighted random weighted versioning

烹饪一道美味的 CLI

蛋先生DX

node,js command 6月日更

CSS实战 | 磁性页头和页脚的表格制作

devpoint

CSS 6月日更

图论环境配置出现的各种错误

容光

【Vue2.x 源码学习】第十六篇 - 生成 render 函数 - 代码拼接

Brave

源码 vue2 6月日更

还不会JVM调优吗?照着做就行

看山

Java JVM 6月日更

SpringBoot之ScopedProxyMode

梦倚栏杆

期权的初步认识

Qien Z.

期权 6月日更

react源码解析14.手写hooks

全栈潇晨

React

盘点用jQuery框架实现“for循环”的四种方式!

华为云开发者联盟

jquery 遍历 js 框架 for循环

优秀的 Scrum Master 应当是仆人式的领导

万事ONES

Scrum 敏捷开发 ScrumMaster ONES

让区块链价值的属性之一“免信任”,更好的融入

CECBC

云图说|初识华为云数据库GaussDB(for openGauss)

华为云开发者联盟

数据库 开源 GaussDB GaussDB(for openGauss) 华为云数据库

商用RTC vs 基于开源WebRTC自研 开发者该如何选择?

融云 RongCloud

区块链场景化应用大有可为

CECBC

什么是 API

escray

学习 极客时间 朱赟的技术管理课 6月日更

你真的会设置密码吗?

卢卡多多

密码学 6月日更

我想挑战下我的软肋,动手实现个Spring应用上下文!

小傅哥

spring 应用上下文 资源加载 自动识别 扩展机制

清晰理解红黑树的演变---红黑的含义

hasWhere

最牛的编码套路

hasWhere

网络攻防学习笔记 Day46

穿过生命散发芬芳

网络攻防 6月日更

【Flutter 专题】102 何为 Flutter RenderObjects ?

阿策小和尚

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

150亿美元,CANVA可画市场价值为何堪比金蝶、用友?

ToB行业头条

SaaS 可画 品牌视觉管理

WinRM 如何设置 TrustedHosts

HoneyMoose

Redis响应延时问题排查

hasWhere

EasyRecovery---U盘数据恢复技巧

淋雨

数据恢复 EasyRecovery 文件恢复

项目进度管理 | 如何为项目制定里程碑?

万事ONES

项目管理 研发管理 研发管理工具 ONES

把嵌套列表作为 Apache Spark SQL 的首选_ArchSummit_蔡東邦 (DB Tsai)_InfoQ精选文章