千家信息网

第56课:Spark SQL和DataFrame的本质

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,一、Spark SQL与DataframeSpark SQL之所以是除Spark core以外最大和最受关注的组件的原因:a) 能处理一切存储介质和各种格式的数据(你同时可以方便的扩展Spark SQ
千家信息网最后更新 2025年02月02日第56课:Spark SQL和DataFrame的本质

一、Spark SQL与Dataframe

Spark SQL之所以是除Spark core以外最大和最受关注的组件的原因:

a) 能处理一切存储介质和各种格式的数据(你同时可以方便的扩展Spark SQL的功能来支持更多的数据类型,例如KUDO)

b)Spark SQL 把数据仓库的计算能力推向了一个新的高度。不仅是无敌的计算速度(Spark SQL比Shark快了一个数量级,Shark比Hive快了一个数量级),尤其是在tungsten成熟以后会更加无可匹敌。更为重要的是把数据仓库的计算复杂度推向了历史新高度(Spark后续推出的Dataframe可以让数据仓库直接使用机器学习、图计算等算法库来对数据仓库进行深度数据价值的挖掘)。

c)Spark SQL(Dataframe,DataSet)不仅是数据仓库的引擎,同时也是数据挖掘的引擎,更为重要的是Spark SQL是科学计算和分析的引擎。

d)后来的DataFrame让Spark SQL一举成为大数据计算引擎的技术上的霸主(尤其是在钨丝计划的强力支持下)。

e) Hive+Spark SQL+DataFrame

1) Hive负责廉价的数据存储

2) Spark SQL 负责高速的计算

3)DataFrame 负责复杂的数据挖掘


二、DataFrame与RDD

a)R和Python中都有DataFrame,Spark中的DataFrame从形式上看,最大的不同点就是其天生是分布式的;你可以简单的认为DataFrame是一个分布式的Table,形式如下:

NameAgeTel
StringIntLong
StringIntLong
StringIntLong
StringIntLong
StringIntLong
StringIntLong

而RDD的形式如下:

Person
Person
Person
Person
Person
Person

RDD不知道数据行的属性,而DataFrame知道数据的列信息

b)RDD和DataFrame的根本差异

RDD以record为基本单位,Spark在处理RDD时无法优化RDD的内部细节,所以也就无法进行更深入的优化,这极大的限制了Spark SQL的性能。

DataFrame中包含了每个record的metadata信息,也就是说DataFrame优化时基于列内部优化,而不像RDD基于行进行优化。


三、Spark企业级最佳实践

阶段1 文件系统+C语言处理

阶段2 JavaEE + 传统数据库(扩展性太差,不支持分布式。即便有部分数据库支持分布式,但是因为事务一致性的关系,速度非常慢)

阶段3 Hive hive的计算能力有限,速度非常慢。

阶段4 Hive转向Hive+Spark SQL

阶段5 Hive+Spark SQL+DataFrame

阶段6 Hive+Spark SQL+DataFrame+DataSet



数据 阶段 仓库 分布式 引擎 支持 形式 速度 处理 复杂 最大 重要 信息 同时 数据库 数据挖掘 数量 数量级 是在 能力 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发的人工系统描述 江苏省十三五网络安全规划 黑龙江旅游职业技术学院网络技术 内网爬虫 对网络安全 goip设备是服务器吗 网络安全课程学习体会 数据库开发技术学什么好呢 万方数据库上的文章怎么下载 php 数据库 查询 软件开发元素 乐陵软件开发哪家强 江西塔式服务器批发 广元广电网络安全教育专栏 枣强县委网络安全和信息化 互联网等科技手段 电力网络安全体系四梁八柱 企业服务器设置 软件开发优化完善阶段 青浦区咨询软件开发厂家职责 数字媒体技术网络技术哪个好 国外最赚钱的网络技术 网络安全主机用处 北京外国语大学博雅数据库 上海4u机架式服务器多少钱 拼多多上货软件开发公司 核酸检测统计系统数据库设计 图书收录的数据库 医疗质控安全管理数据库 电脑刷机无法连接苹果服务器 光辉之刃服务器角色没有了
0