- 1、本文档共99页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
8.4.2Spark生态系统(2)SparkSQLSparkSQL是用于结构化数据处理的Spark模块。与基本的SparkRDDAPI不同,SparkSQL提供的接口为Spark提供了关于数据结构和正在执行的计算的更多信息。在内部,SparkSQL使用这些额外的信息来执行额外的优化。有几种与SparkSQL进行交互的方式,包括SQL和DatasetAPI。在计算结果时,使用相同的执行引擎,而不管使用哪种API/语言表示计算。这种统一意味着开发人员可以轻松地在不同的API之间来回切换,基于这些API提供了表达给定转换的最自然的方式。SparkSQL的一个用途是执行SQL查询。SparkSQL也可以用来从现有的Hive安装中读取数据。用另一种编程语言中运行SQL时,结果将作为数据集/数据框返回。您还可以使用命令行?或通过JDBC/ODBC与SQL接口进行交互。8.4.2Spark生态系统DataFrame:与RDD类似,DataFrame也是一个分布式数据容器。然而DataFrame更像传统数据库的二维表格,除了数据以外,还记录数据的结构信息,即schema。同时,与Hive类似,DataFrame也支持嵌套数据类型(struct、array和map)。从API易用性的角度上看,DataFrameAPI提供的是一套高层的关系操作,比函数式的RDDAPI要更加友好,门槛更低。由于与R和Pandas的DataFrame类似,SparkDataFrame很好地继承了传统单机数据分析的开发体验。8.4.2Spark生态系统DataFrame与RDD的主要区别在于,前者带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。这使得SparkSQL得以洞察更多的结构信息,从而对藏于DataFrame背后的数据源以及作用于DataFrame之上的变换进行了针对性的优化,最终达到大幅提升运行时效率的目标。反观RDD,由于无从得知所存数据元素的具体内部结构,SparkCore只能在stage层面进行简单、通用的流水线优化。RDD和DataFrame的比较如图8-6所示。8.4.2Spark生态系统8.4.2Spark生态系统(3)SparkStreamingSparkStreaming是SparkAPI核心的扩展,支持可扩展,高吞吐量,实时数据流的容错流处理。数据可以从像卡夫卡,flume,或TCP传输许多来源输入,并且可以使用高级别功能表达复杂的算法来处理map,reduce,join和window。最后,处理的数据可以推送到文件系统,数据库和数据可视化。事实上,您可以将Spark的?机器学习和?图形处理算法应用于数据流。SparkStreaming提供了一个高层次的抽象,称为离散流或DStream,它代表了连续的数据流。DStream可以通过Kafka,Flume和Kinesis等来源的输入数据流创建,也可以通过在其他DStream上应用高级操作来创建。在内部,一个DStream被表示为一系列?RDDSparkstreaming数据处理如图8-7所示。8.4.2Spark生态系统8.4.2Spark生态系统DiscretizedStream:DiscretizedStream是SparkStreaming的基础抽象,代表持续性的数据流和经过各种Spark原语操作后的结果数据流。在内部实现上,DStream是一系列连续的RDD来表示。每个RDD含有一段时间间隔内的数据。DStream上的原语与RDD的类似,分为Transformations(转换)和OutputOperations(输出)两种,此外转换操作中还有一些比较特殊的原语,如:updateStateByKey()、transform()以及各种Window相关的原语。8.4.2Spark生态系统常见的转换和含义如下:map(func):通过传递函数func的源DStream的每个元素来返回一个新的DStream?。flatMap(func):类似于地图,但是每个输入项目可以被映射到0个或更多的输出项目。filter(func):通过仅选择func返回true?的源DStream的记录来返回一个新的DStream?。repartition(numPartitions):通过创建更多或更少的分区来更改此DStream中的并行性级别。union(otherStream):返回一个新的DStream,其中包含源DStream和otherDStream中元素的联合?。count():通过计算源DStream的每个RDD中元素的数量,返回
您可能关注的文档
- Linux系统与大数据应用 课件 第1章 Linux系统概述.ppt
- Linux系统与大数据应用 课件 第2章 Hadoop平台常用的Linux命令.ppt
- Linux系统与大数据应用 课件 第3章 Linux系统用户与组管理.ppt
- Linux系统与大数据应用 课件 第4章 Linux系统编辑器和软件安装.ppt
- Linux系统与大数据应用 课件 第5章 Linux系统网络及其服务配置.ppt
- Linux系统与大数据应用 课件 第6章 大数据挖掘的shell基础.ppt
- Linux系统与大数据应用 课件 第7章 Linux系统下的Python基础.ppt
- Linux系统与大数据应用 课件 第9章 大数据应用开发工具.ppt
- Linux系统与大数据应用 课件 第10章 大数据应用与案例.pptx
- 跨境电商数据分析与应用题库(AB卷) .docx
文档评论(0)