文档详情

大数据平台与编程第7章 Spark结构化编程Dataframe.pptx

发布:2024-09-09约7.79千字共61页下载文档
文本预览下载声明

第7章Spark结构化编程DataFrame

?DataFrame概述目录?DataFrame的创建?本章小结?本章习题?DataFrame的基础操作

DataFrame概述什么是DataFrameDataFrame与RDD类似,都是Spark用于分布式计算的不可变数据集合。DataFrame是SparkSQL处理结构化数据的核心抽象,支持通过简易SQL接口进行数据分析。使用DataFrame,需要将数据源转化为DataFrame对象,然后调用API实现需求,或注册为表以使用SQL查询。DataFrame类似关系数据库中的表,可从多种结构化数据源加载,如结构化数据文件、Hive表和外部数据库。DataFrameAPI支持Scala、Java、Python和R。

DataFrame概述DataFrame与RDD的区别RDD和DataFrame均为Spark平台对数据的一种抽象,一种组织方式,但是两者的地位或者设计目的截然不同。RDD是整个Spark平台的存储、计算以及任务调度的逻辑基础,更具有通用性,适用于各类数据源,是分布式的Java对象的集合。而DataFrame是针对结构化数据源的高层数据抽象,是分布式的Row对象的集合,其中在DataFrame对象创建过程中必须指定数据集的结构信息(Schema),所以DataFrame是具有专业性的数据抽象,只能读取具有鲜明结构的数据集。

DataFrame与RDD的区别DataFrame与RDD最大的不同在于,RDD仅是一条条数据的集合,由于不了解RDD数据集内部的结构,Spark作业执行只能调度阶段层面进行简单通用的优化。而DataFrame带有Schema元数据,即DataFrame所表示的二维表数据集的每一列都带有名称和类型,对于带有数据集内部结构的DataFrame,可以根据结构信息进行针对性的优化,最终优化运行效率。

DataFrame与RDD的区别StudentStudentStudentNameAgeCountryInstituteHeightWeightStringIntStringStringIntIntStringIntStringStringIntIntStringIntStringStringIntIntRDD[Student]DataFrame[Student]下图直观地体现了DataFrame和RDD的区别。

DataFrame与RDD的区别DataFrame除了提供了比RDD更丰富的算子操作以外,更能利用已知的结构信息来提升执行效率、减少数据读取以及执行计划的优化。而RDD由于无从得知所存数据元素的具体内部结构,所以RDD提供的API功能上没有DataFrame强大丰富且自带优化,称之为Low-levelAPI,SparkCore只能在Stage层面进行简单、通用的流水线优化。

DataFrame与RDD的区别正如RDD的各种变换实际上只是构造RDDDAG,DataFrame的各种变化同样也是惰性的,它们并不直接求出计算结果,而是将各种变换组装成与RDDDAG类似的逻辑查询计划,经过优化的逻辑执行计划被翻译为物理执行计划,并最终落实为RDDDAG。

DataFrame的特性作为现有RDDAPI的扩展,DataFrame具有以下特性(功能):1.能够从单台笔记本电脑上的千字节数据扩展到大型群集上的PB级数2.支持各种数据格式和存储系统3.通过SparkSQLCatalyst优化器实现最先进的优化和代码生成4.通过Spark无缝集成所有大数据工具和基础架构5.Python,Java,Scala和R的API(通过SparkR开发)6.对于用户友好,易于编程,同时通过智能优化和代码生成来提高性能。通过DataFrame与Catalyst优化器,现有的Spark程序迁移到DataFrame时性能得到改善。由于优化器生成用于执行的JVM字节码,因此Python用户将体验到与Scala和Java用户相同的高性能。

?DataFrame的创建目录?DataFrame概述?本章小结?本章习题?DataFrame的基础操作

DataFrame的创建程序主入口SparkSession从Spark2.0以上版本开始,SparkSQL模块的编程主入口点是SparkSession,替代了Spark1.6中的SQLContext以及HiveContext接口,实现了SQLContext和HiveContext对数据加载、转换、处理等全部功能。SparkSession对象不仅为用户提供了创建DataFrame对象、读取外部数据源并转化为DataFrame对象以及执行sql查询的API,还负责记录着用户希望Spark应用在Spark集群运行的控制、调优参数,是Sp

显示全部
相似文档