前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据开发:Spark SQL数据处理模块

大数据开发:Spark SQL数据处理模块

作者头像
成都加米谷大数据
修改2021-08-03 18:17:23
8190
修改2021-08-03 18:17:23
举报
文章被收录于专栏:大数据开发

Spark SQL作为Spark当中的结构化数据处理模块,在数据价值挖掘的环节上,备受重用。自Spark SQL出现之后,坊间甚至时有传言,Spark SQL将取代Hive,足见业内对其的推崇。今天的大数据开发学习分享,我们就来讲讲Spark SQL数据处理模块。

Spark SQL简介

Spark SQL,整体来说,还是具备比较多的优势的,比如数据兼容、组件扩展、性能优化——

数据兼容:可从Hive表、外部数据库(JDBC)、RDD、Parquet 文件、JSON 文件获取数据,可通过 Scala 方法或 SQL 方式操作这些数据,并把结果转回 RDD。

组件扩展:SQL 语法解析器、分析器、优化器均可重新定义。

性能优化:内存列存储、动态字节码生成等优化技术,内存缓存数据。

多语言支持:Scala、Java、Python、R。

Spark SQL原理及组成

Catalyst 优化:

优化处理查询语句的整个过程,包括解析、绑定、优化、物理计划等,主要由关系代数(relation algebra)、表达式(expression)以及查询优化(query optimization)组成。

Spark SQL 内核:

处理数据的输入输出,从不同数据源(结构化数据 Parquet 文件 JSON 文件、Hive 表、外部数据库、已有 RDD)获取数据,执行查询(expression of queries),并将查询结果输出成 DataFrame。

Hive 支持:

对 Hive 数据的处理,主要包括 HiveQL、MetaStore、SerDes、UDFs 等。

Spark SQL执行流程

SqlParser 对 SQL 语句解析,生成 Unresolved 逻辑计划(未提取 Schema 信息);

Catalyst 分析器结合数据字典(catalog)进行绑定,生成 Analyzed 逻辑计划,过程中 Schema Catalog 要提取 Schema 信息;

Catalyst 优化器对 Analyzed 逻辑计划优化,按照优化规则得到 Optimized 逻辑计划;

与 Spark Planner 交互,应用策略(strategy)到 plan,使用 Spark Planner 将逻辑计划转换成物理计划,然后调用 next 函数,生成可执行物理计划。

Spark SQL性能

内存列式缓存:内存列式(in-memory columnar format)缓存(再次执行时无需重复读取),仅扫描需要的列,并自动调整压缩比使内存使用率和 GC 压力最小化。

动态代码和字节码生成技术:提升重复表达式求值查询的速率。

Tungsten 优化:

由 Spark 自己管理内存而不是 JVM,避免了 JVM GC 带来的性能损失。

内存中 Java 对象被存储成 Spark 自己的二进制格式,直接在二进制格式上计算,省去序列化和反序列化时间;此格式更紧凑,节省内存空间。

关于大数据开发学习,Spark SQL数据处理模块,以上就为大家做了简单的介绍了。Spark框架在大数据生态当中的重要地位,决定了我们在学习当中也应当付出相应程度的努力,由浅入深,逐步深入。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、Presto、Iceberg、Elasticsearch、StarRocks 等,以快速构建企业级数据湖仓。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档