当前位置: 首页 > news >正文

Spark进化论:从RDD到DataFrame,揭秘Spark SQL如何成为性能引擎的幕后英雄

一道面试题引入主题

spark 3.0 大版本发布,Spark SQL 的优化占比将近 50%;而像PySpark、Mllib 和 Streaming 的优化占比都不超过 10%,Graph 的占比几乎可以忽略不计。这是否意味着 Spark 社区逐渐放弃了其他计算领域,只专注于数据分析 ?

这个问题的标准答案是:“Spark SQL 取代 Spark Core,成为新一代的引擎内核,所有其他子框架如 Mllib、Streaming 和 Graph,都可以共享 Spark SQL 的性能优化,都能从 Spark社区对于 Spark SQL 的投入中受益。”不过,面试官可没有那么好对付,一旦你这么说,他/ 她可能会追问:“为什么需要 Spark SQL 这个新一代引擎内核?Spark Core 有什么问题吗?Spark SQL 解决了 Spark Core 的哪些问题?怎么解决的?”

下面从RDD 的痛点说起,一步一步带你探讨 DataFrame 出现的必然性,Spark Core 的局限性,以及它和 Spark SQL的关系。

RDD 之痛:优化空间受限 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【数据结构】排序
  • Linux 安装 GDB (无Root 权限)
  • 【个人亲试最新】WSL2中的Ubuntu 22.04安装Docker
  • 构造+有序集合,CF 1023D - Array Restoration
  • CSS的常见难见
  • 谷粒商城实战笔记-编码经验积累
  • 神经网络与注意力机制的权重学习对比:公式探索
  • ts给vue中props设置指定类型
  • 基于springboot+vue+uniapp的居民健康监测小程序
  • stats 监控 macOS 系统
  • 【代码随想录训练营第42期 Day7打卡 LeetCode 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
  • 【Gitlab】SSH配置和克隆仓库
  • 基于FFmpeg和SDL的音视频解码播放的实现过程与相关细节
  • flex:1
  • 利用OSMnx求路网最短路径并可视化(二)
  • @angular/forms 源码解析之双向绑定
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • JavaScript 一些 DOM 的知识点
  • JavaScript设计模式之工厂模式
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Kibana配置logstash,报表一体化
  • mysql外键的使用
  • redis学习笔记(三):列表、集合、有序集合
  • Spring Boot MyBatis配置多种数据库
  • Vim Clutch | 面向脚踏板编程……
  • Vue--数据传输
  • WePY 在小程序性能调优上做出的探究
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 番外篇1:在Windows环境下安装JDK
  • 全栈开发——Linux
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 手机端车牌号码键盘的vue组件
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​queue --- 一个同步的队列类​
  • #QT(串口助手-界面)
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $(selector).each()和$.each()的区别
  • (1)STL算法之遍历容器
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (七)理解angular中的module和injector,即依赖注入
  • (一) springboot详细介绍
  • (转)ObjectiveC 深浅拷贝学习
  • (轉)JSON.stringify 语法实例讲解
  • *p++,*(p++),*++p,(*p)++区别?
  • .libPaths()设置包加载目录
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET Framework .NET Core与 .NET 的区别
  • .net开发日常笔记(持续更新)
  • .NET企业级应用架构设计系列之结尾篇