文档详情

第4章 Spark SQL结构化数据处理模块.pptx

发布:2025-04-23约2.69万字共10页下载文档
文本预览下载声明

第4章SparkSQL结构化数据处理模块

《Spark大数据分析与实战(第2版)》

熟悉DataFrame的基本概念,能够说明DataFrame与RDD在结构上的区别

了解SparkSQL,能够说出SparkSQL的特点

熟悉SparkSQL架构,能够说明Catalyst内部组件的运行流程

掌握DataFrame的常用操作,能够使用DSL风格和SQL风格操作DataFrame

掌握DataFrame的创建,能够通过读取文件创建DataFrame

学习目标/Target

了解Dataset,能够说明RDD、DataFrame与Dataset的区别

掌握DataFrame的函数操作,能够通过标量函数和聚合函数操作DataFrame

掌握Dataset的创建,能够通过读取文件创建Dataset

掌握RDD与DataFrame的转换,能够通过反射机制和编程方式将RDD转换成DataFrame

掌握SparkSQL操作数据源,能够使用SparkSQL操作MySQL和Hive

学习目标/Target

对于那些对Scala语言和Spark常用API不了解,但希望能够利用Spark框架强大数

据分析能力的用户,Spark提供了一种结构化数据处理模块SparkSQL,SparkSQL模块使用户可以利用SQL语句处理结构化数据。本章将针对SparkSQL的基本原理和使用方式进行详细讲解。

章节概述/Summary

SparkSQL的基础知识

DataFrame的基础知识

RDD转换为DataFrame

Dataset的基础知识

SparkSQL操作数据源

3

01

02

03

04

05

目录/Contents

SparkSQL的基础知识

4.1

SparkSQL是Spark用来处理结构化数据的一个模块,它提供

了一个名为DataFrame的数据模型,即带有元数据信息的RDD。作为分布式SQL查询引擎,SparkSQL使用户可以通过SQL、DataFrameAPI和DatasetAPI3种方式实现对结构化数据的处理。无论用户选择哪种方式,它们都是基于同样的运行引擎,可以方便地在不同方式之间进行切换。

4.1SparkSQL的基础知识

4.1.1SparkSQL的简介

学习目标

了解SparkSQL,能够说出

SparkSQL的特点。

SparkSQL的前身是Shark,Shark最初是由加州大学伯克利分校的实验室开发的Spark生态系

统的组件之一,它运行在Spark系统上,并且重新利用了Hive的工作机制,并继承了Hive的各个组件。Shark主要的改变是将SQL语句的转换方式从MapReduce作业替换成了Spark作业,这样的改变提高了计算效率。

然而,由于Shark过于依赖Hive,所以在版本迭代时很难添加新的优化策略,从而限制了

Spark的发展,因此,在后续的迭代更新中,Shark的维护停止了,转向SparkSQL的开发。

SparkSQL主要提供了3个功能。

支持多种数据源

支持标准连接

支持无缝继承

4.1.1SparkSQL的简介

4.1.2SparkSQL架构

学习目标

熟悉SparkSQL架构,能够说明

Catalyst内部组件的运行流程。

SparkSQL的一个重要特点就是能够统一处理数据表和RDD,使得用户可以轻松的使用SQL语句进行外部查询,同时进行更加复杂的数据分析。

4.1.2SparkSQL架构

CatalystRDDCluster

Catalyst内部主要包括Parser(分析)组件、Analyzer(解析)组件、Optimizer(优化)组件、Planner(计划)组件和QueryExecution(执行)组件。

4.1.2SparkSQL架构

SQL语句

DataFrame

AnalyzerOptimizer

OptimizedLogicalPlan

PhysicalPlanCostModel

Cache

Manager

LogicalPlan

Planner

RDD

当用户提交SQL语句、DataFrame或Dataset时,它们会经过Parser组件进行分析。Parser组件分析相关的执行语句,判断其是否符合规范,一旦分析完成,会创建SparkSession,并将元数据保存在

显示全部
相似文档