写点什么

把嵌套列表作为 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:009584

评论

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

学习笔记:02 | 第一个程序:教你输出彩色的文字

Nydia

学习

Windows自带的功能这么好用,还装什么第三方软件?

彭宏豪95

windows 5月日更

【LeetCode】子数组异或查询Java题解

Albert

算法 LeetCode 5月日更

源码解析之Seata项目中的分布式ID生成算法

Coder的技术之路

分布式 分布式ID

iMazing比iTunes好用在哪些地方

懒得勤快

Amazon Route 53 Resolver 落地中国区,轻松玩转私有域名互访不是梦!| 新服务上线

亚马逊云科技 (Amazon Web Services)

HuskyLens人工智能摄像头

不脱发的程序猿

人工智能 智能硬件 AIOT HuskyLens 人工智能摄像头

再学习一个 Golang 专栏

escray

学习 极客时间 Go 语言 5月日更

限流与Guava RateLimiter原理解析

千珏

Java 微服务 限流算法 Guava 令牌桶

如何高效地存储与检索大规模的图谱数据?

华为云开发者联盟

存储 知识图谱 检索 图结构 表结构

Amazon Glue 版本 2.0 将作业启动时间缩短了 10 倍,现已全面开放!

亚马逊云科技 (Amazon Web Services)

网络协议之HTTP:HTTP 1.1与HTTP 2

程序员架构进阶

HTTP2.0 28天写作 HTTP协议 5月日更

流量变现业务概论——Linkedmall流量变现业务初步分析及系统设计概要

关贺宇

“云演唱会”也有仪式感!能检票、可转赠,爱奇艺“云票”如何重构线上购票逻辑

爱奇艺技术产品团队

Ansible AD-Hoc

耳东@Erdong

ansible 5月日更

关于组件,你真的了解么?

架构精进之路

组件化 5月日更

揭秘 Amazon Go 无人商店是如何炼成的!

亚马逊云科技 (Amazon Web Services)

将自媒体玩得风生水起的不一定是前总统,还有可能是艺术家

zhoo299

艺术 自媒体 5月日更

Gradle学习笔记

ES_her0

5月日更

anyRTC 六周年 打造全网最低音视频价格

anyRTC开发者

音视频 WebRTC RTC sdk

人证一体机产品设计

lenka

5月日更

NumPy之:理解广播

程序那些事

Python Numpy 程序那些事

华为云PB级数据库GaussDB(for Redis)揭秘第十期:GaussDB(for Redis)迁移系列(上)

华为云开发者联盟

数据仓库 华为云 数据迁移 GaussDB(for Redis) PB级数据库

Nginx负载均衡配置误区

运维研习社

nginx 负载均衡 5月日更

STM32电源框图解析(VDD、VSS、VDDA、VSSA、VREF+、VREF-、VBAT等的区别)

不脱发的程序猿

嵌入式 stm32 单片机 电源框图解析

CampusBulider(模模搭)学习笔记5:创建自定义建筑

ThingJS数字孪生引擎

大前端 可视化 3D 3D可视化 数字孪生

你认识镜子里的那个自己吗?

小天同学

原则 认知 5月日更

编程思考路径2条

顿晓

5月日更 思考路径

嵌入式程序调用函数的内部过程和机制

不脱发的程序猿

单片机 嵌入式程序 嵌入式设计

智慧党建三维云展厅可视化

一只数据鲸鱼

数据可视化 智慧党建 三维可视化

零基础学习NLP-DAY2

Qien Z.

nlp 5月日更

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