版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大数据分析概述1大数据分析的概念目录大数据的概念2大数据分析的流程3大数据分析的应用场景4大数据技术体系5大数据又被称为海量数据,目前学界对大数据的定义尚未统一。国际期刊Nature和Science对大数据的贡献:首次正式提出“大数据”这一专有名词,首次综合分析了大数据对人类生活的影响,并详细描述了人类面临的数据困境。麦肯锡全球研究院的定义:以数据规模是否能够被经典数据库及时处理来定义大数据,认为大数据是指数据规模大小超过经典数据库系统收集、存储、管理和分析能力的数据集。NIST的定义:具有规模巨大、种类繁多、增长速度快和变化频繁的特征,需要可扩展体系结构来有效存储、处理和分析的广泛数据集。IBM的定义:大数据的“4V”特性,即Volume(数量)、Variety(多样)、Velocity(速度)和Value(价值),后来又加入了Veracity(真实性),形成了大数据的“5V”特性。大数据的概念大数据4V特性Volume(数量)。当前典型计算机硬盘容量为TB量级,PB是大数据的临界点。据IDC预测,到2025年全球数据量将达到175ZB。Variety(形式)。数据类型包括结构化数据、半结构化和非结构化数据,如XML、邮件、博客、图片、音频、视频等。多样的数据类型对数据的整合、存储、分析和处理提出了更高要求。Velocity(处理速度)。现代传感技术、网络技术和计算机技术的发展使得数据的产生、存储、分析和处理的速度非常快。业界对大数据的处理能力有“1秒定律”的要求,即从数据产生到获取价值的时间应尽可能短。Value(价值)。由于大数据的规模不断扩大,单位数据的价值密度在降低,但整体数据的价值却在提高。例如,监控视频中可能只有一两秒的数据是有用的。许多学者和专家将大数据比作黄金和石油,表示其蕴含的巨大商业价值。大数据的概念本书定义大数据大数据以大体量、多样性、快速产生和处理以及低价值密度为主要特征。需要新的体系架构、技术、算法和分析方法来处理大数据。大数据是一个动态的定义,不同行业有不同的理解,衡量标准会随着技术的进步而改变。大数据的概念1大数据分析的概念目录大数据的概念2大数据分析的流程3大数据分析的应用场景4大数据技术体系5什么是大数据分析?大数据分析是指对规模巨大、海量的数据进行分析,挖掘数据蕴含的价值和知识。大数据分析与传统数据分析的区别:传统的数据分析主要基于统计分析方法,而大数据分析则更侧重于预测性分析和预案性分析,处理大规模、多样性的复杂数据。数据分析的目的:将隐藏在大量数据背后的信息集中和提炼出来,总结出研究对象的内在规律,帮助管理者进行判断和决策。数据分析的四个层次:描述性分析、诊断性分析、预测性分析和预案性分析。描述性分析描述数据特征的各项活动,包括频数分析、集中趋势分析、离散程度分析等。诊断性分析用于获得事件发生的原因,寻找影响这些事件发生的因素。预测性分析涵盖各种统计技术,如数据挖掘、机器学习等,用于对未来将要发生的事件进行预测。预案性分析规定应该采取的行动,提供可以推理的结果,可以获得优势或降低风险。大数据分析的概念大数据分析的思维方式转变:
全样而非抽样、混杂而非纯净、趋势而非精确、相关而非因果。全样而非抽样。对所有相关数据进行分析,不再基于抽样样本进行随机分析。混杂而非纯净。接收混杂的数据,不必担心某个数据点会对整套分析造成不利影响。趋势而非精确。可以忽略微观层面上的精确度,在宏观层面上拥有更好的洞察力。相关而非因果。寻找事物之间的相关关系,不探究因果关系。大数据分析的概念1大数据分析的概念目录大数据的概念2大数据分析的流程3大数据分析的应用场景4大数据技术体系5大数据分析源于业务需求,其完整的流程包括明确目的、数据采集与存储、数据预处理、分析与建模、模型评估以及可视化应用。明确目的:每个大数据分析项目都有独特的业务背景和需要解决的问题。在项目开始之前,应考虑数据对象、商业目的、业务需求等问题。只有深入理解业务背景,明确数据分析目的,并确定分析思路,才能确保数据分析过程的有效性。数据采集与存储:根据指标的分解结果,可以确定数据选取范围,并采集目标数据。采集的数据可以来自企业内部数据库中的历史数据、Excel表格数据、文本文件以及实时数据等。此外,互联网和行业领域相关数据也是重要的数据来源。大数据分析的流程数据预处理:数据预处理是大数据处理中不可或缺的环节。为了获得可靠的数据分析和挖掘结果,必须利用数据预处理手段来提高大数据的质量,贯彻高质量发展精神。数据预处理包括数据合并、数据清洗、数据标准化、数据变换等。分析与建模:分析与建模是大数据处理的核心环节,涵盖了统计分析、机器学习、数据挖掘和模式识别等多个领域的技术和方法。在分析阶段,可以采用对比分析、分组分析、交叉分析和回归分析等方法。大数据分析的流程模型评估:评估是对模型进行全面评估的过程,包括建模过程评估和模型结果评估。具体来说,建模过程评估主要关注模型的精度、准确性、效率和通用性等方面;而模型结果评估则需要考虑是否有遗漏的业务问题,以及模型结果是否解决了业务问题。可视化应用:将分析结果以可视化的形式呈现。数据可视化的目标是以图形方式清晰、有效地展示信息。通过不同角度的可视化图形,人们可以更好地解读数据的本质,更直观地解释数据之间的特征和属性情况,并更深入地理解数据和数据所代表事件之间的关联。最终,将编写分析报告,并将分析结果应用于实际业务中,实现数据分析的真正价值——解决问题、创造商业价值并提供决策依据。大数据分析的流程1大数据分析的概念目录大数据的概念2大数据分析的流程3大数据分析的应用场景4大数据技术体系5大数据无处不在,应用于各行各业。个性化推荐、预测性分析是两个典型的应用场景。个性化推荐:大数据分析不仅能够帮助用户发现有价值的信息,还能将信息推荐给可能感兴趣的用户。例如,电子商务网站、社交网站的音乐、电影和图书推荐,以及媒体根据用户的品位和阅读习惯进行个性化推荐。大数据分析的应用场景预测性分析:预测性分析是大数据分析的核心应用之一。它基于大数据和预测模型预测未来某事件发生的概率。例如:设备管理领域:通过物联网技术收集和分析设备上的数据流,建立设备管理模型,预测设备故障,以确保设备正常作业。交通物流分析领域:通过业务系统和全球定位系统(GPS)获得数据,对客户使用数据构建交通状况预测分析模型,有效预测实时路况、物流状况、车流量、客流量和货物吞吐量等,进而提前补货,制定库存管理策略。公安机关、金融机构、电信部门的应用:公安机关、各大金融机构、电信部门等可以利用用户基本信息、用户交易信息、用户通话短信信息等数据,识别可能发生的潜在欺诈交易,做到未雨绸缪。大数据分析的应用场景1大数据分析的概念目录大数据的概念2大数据分析的流程3大数据分析的应用场景4大数据技术体系5大数据技术包括大数据采集、存储、资源调度、计算、查询与应用分析等,典型的开源框架有:大数据采集框架:负责从外部数据源采集数据,包括大数据收集、交换和消息处理等系统框架。典型框架:Flume:分布式海量日志采集、聚合和传输框架Sqoop:数据迁移工具框架,用于在关系数据库和Hadoop之间交换数据Kafka:发布/订阅的消息系统框架,用于处理实时数据大数据技术体系大数据存储框架:
负责对大数据进行存储.典型框架:HDFS:Hadoop的核心子项目,用于处理超大文件的需求,数据在相同节点上以复制的方式进行存储,以实现将数据合并计算的目的Hbase:是一个分布式、面向列、高可靠性、高性能的分布式存储系统,适用于存储结构化和半结构化的稀疏数据Cassandra:
一种分布式NoSQL数据库,用于处理大量分布在多个数据中心的服务器上的数据MongoDB:一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案等。大数据技术体系大数据计算根据对时间性能要求分为:批处理:对时间要求最低,一般要求处理时间为分钟到小时级别,甚至天级别,追求的是高吞吐率,即单位时间内处理的数据量尽可能大。交互式处理:对时间要求比较高,一般要求处理时间为秒级别,这类框架需要与使用者进行交互,因此会提供类结构查询语言以便于用户使用。实时处理:对时间要求最高,一般要求处理时间延迟在秒级以内。大数据技术体系典型计算框架:MapReduce:一个分布式的离线计算框架,用于海量数据的并行运算Spark:一栈式计算框架,适用于大规模数据处理,能更好地适用于数据挖掘与机器学习等需要迭代的算法中,高效地支持更多计算模式,包括交互式查询和流处理等Flink:
一个开源的、适用于流处理和批处理的分布式数据处理框架Storm:一个开源的分布式实时大数据处理系统等大数据技术体系资源调度框架:
提高资源利用率、降低运营成本。典型框架:YARN:Hadoop的资源管理和作业调度系统Mesos:
一个集群管理器,提供了有效的资源隔离和共享跨分布式应用。数据查询与分析框架:
为用户提供易用的数据处理工具。典型框架:Hive:基于Hadoop的数据仓库工具,可以将结构化数据文件映射为一张数据库表,并提供类SQL语句的查询功能SparkSQL:Spark的模块,用于处理结构化数据Mahout:一个基于Hadoop之上的机器学习和数据挖掘的分布式框架大数据技术体系Spark大数据技术框架1Spark特点目录Spark简介2Spark运行架构与流程3SparkRDD4Spark生态圈5ApacheSpark介绍开源、通用的并行计算框架支持分布式数据处理基于内存进行计算,处理速度快与Hadoop生态系统兼容,可以运行在Hadoop的YARN资源管理器上,使用HDFS作为其文件系统Spark大数据技术框架Spark的应用批处理;结构化数据查询流式计算机器学习图计算Spark的设计理念灵活性和易用性适用于多种应用场景,特别是需要对特定数据集进行多次操作或迭代计算的应用Spark大数据技术框架Spark的起源和发展Spark重要里程碑2009年,由加利福尼亚大学伯克利分校AMPLab开发的研究性项目2010年,通过BSD许可协议正式对外开源发布2012年,第一篇关于Spark的论文发布,第一个正式版本Spark0.6.0发布2013年,成为Apache软件基金会项目,发布了SparkStreaming、SparkMLlib、Shark(SparkonHadoop)2014年,成为Apache的顶级项目,5月底Spark1.0.0发布,同时SparkGraphx和SparkSQL取代了Shark2015年,推出了适用于大数据分析的DataFrame编程模型,开始受到IT行业的广泛关注Spark的起源和发展2016年,推出了更强的数据分析工具DataSet2017年,StructuredStreaming发布2018年,Spark2.4.0发布,成为全球最大的开源项目2020年,Spark3.0发布,性能相比Spark2.4提升了2倍,提供结构化流的新用户界面(UserInterface,UI),对Python支持更加友好,并且兼容ANSISQL。Spark的起源和发展1Spark特点目录Spark简介2Spark运行架构与流程3SparkRDD4Spark生态圈5通用性一栈式解决方案,可以用于批处理、交互式查询、实时流处理、机器学习和图计算等多种不同类型的处理。对企业应用来说,可以使用一个平台来进行不同的工程实现,从而减少人力开发和平台部署成本。兼容性Spark能够与很多开源框架兼容使用。Spark可以使用HadoopYARN和ApacheMesos作为其资源管理和调度器。可以从多种数据源读取数据,如HDFS、HBase、MySQL等。Spark特点高效性Spark采用内存存储中间计算结果,减少迭代运算的磁盘I/O。通过并行计算有向无环图(DAG)的优化,减少不同任务之间的依赖,降低延迟等待时间。在内存中,Spark的运行速度比MapReduce快100倍。易用性与MapReduce仅支持Map和Reduce两种编程类型不同,Spark提供超过80种不同的转换和行动算子。采用函数式编程风格,使相同功能需要的代码量大大缩小。Spark特点1Spark特点目录Spark简介2Spark运行架构与流程3SparkRDD4Spark生态圈5Spark运行架构包括四个主要组件:集群管理器(ClusterManager)应用的任务驱动器(Driver)工作节点(WorkerNode)执行进程(Executor)这四个组件共同构成了Spark的运行环境。Spark运行架构Driver:任务驱动器,负责启动运行main()方法并创建SparkContext对象。ClusterManager:集群管理器,在集群上获取资源的外部服务,支持Standalone、Mesos和YARN这3种类型。WorkerNode:工作节点,集群中运行Application代码的任意一个节点。Executor:运行在工作节点中的进程,负责运行Task,并为应用程序存储数据,在这个过程中,可能会将数据写入内存或磁盘进行缓存(Cache)。Spark运行架构Spark运行基本流程Spark运行流程步骤1:Driver创建一个SparkContext对象来构建SparkApplication的运行环境,SparkContext向集群管理器(ClusterManager)注册并申请运行Executor资源。步骤2:ClusterManager为Executor分配资源并启动Executor进程。步骤3:SparkContext根据RDD依赖关系构建有向无环图(DAG),然后DAGScheduler将DAG分解成多个Stage,并将每个Stage的TaskSet(任务集,即多组任务)发送给TaskScheduler(任务调度器)。Executor向SparkContext申请Task,TaskScheduler将Task发放给Executor。步骤4:Task在Executor上运行,将执行结果反馈给TaskScheduler,再反馈给DAGScheduler。运行完毕后,数据被写入存储系统,并向集群管理器注销Task,释放所有TaskScheduler资源。Spark运行流程DAGScheduler与TaskScheduler的作用DAGScheduler决定运行Task的理想位置,并将这些信息传递给下层的TaskScheduler。DAGScheduler还会将DAG分解成多个Stage,然后将Stage以TaskSet的形式提交给TaskScheduler。此外,DAGScheduler还处理可能在Shuffle阶段因数据丢失所导致的失败,这有可能需要重新提交运行之前的Stage。TaskScheduler维护所有TaskSet,当Executor向Driver发送“心跳”信息时,TaskScheduler会根据其资源剩余情况分配相应的Task。另外,TaskScheduler还维护着所有Task的运行状态,重试失败的Task。Spark运行流程1Spark特点目录Spark简介2Spark运行架构与流程3SparkRDD4Spark生态圈5RDD是Spark的核心数据结构,代表弹性分布式数据集(ResilientDistributedDatasets)。它提供了一种高度抽象化的接口,使得开发者可以方便地处理大规模数据集。1.RDD的产生背景RDD的设计理念源自于AMPLab发表的论文“ResilientDistributedDatasets:AFault-TolerantAbstractionforIn-MemoryClusterComputing”。为了解决迭代式算法和交互式数据挖掘工具中,不同计算阶段之间会重用中间结果的问题,Spark设计了RDD。SparkRDDRDD是分布式对象集合,本质上是一个只读的分区记录集合。每个RDD可以被分成多个分区,这些分区是数据集的片段。不同RDD的分区可以保存在集群中的不同节点上,从而实现在不同节点上的并行计算。RDD的概念与特点弹性计算:包括存储弹性、容错弹性、计算弹性和分片弹性。分布式数据存储计算:RDD数据被分割到不同服务器节点的内存上,以实现分布式计算的目的。延迟计算:RDD转换操作采用惰性机制,只有当执行行动操作时,才会真正开始计算。不可变性:RDD数据采用只读模式,不能直接修改,只能通过相关的转换操作生成新的数据来间接达到修改的目的。可分区:作为分布式计算框架,Spark支持数据的可分区特性,用户可以在任何现有的RDD上执行分区操作。RDD的概念与特点RDD基本操作概览RDD的构建RDD的转换操作RDD的行动操作RDD构建操作从集合中构建RDD在现有RDD的基础上构建新的RDD从外部数据源(如本地文件、HDFS、数据库等)中读取数据来构建RDDRDD基本操作RDD转换操作RDD转换操作是指从一个RDD中生成一个新的RDD。需要注意的是,RDD中的所有转换都是延迟加载的,并不会直接计算结果。只有遇到行动算子时,这些转换操作才会真正进行。这种设计让Spark能更加高效地运行。RDD转换操作通过诸如map()、filter()、flatMap()、reduceByKey()等具有不同功能的转换算子实现。RDD基本操作算子解释map(func)对RDD中的每个元素都使用func,返回一个新的RDD,其中func为用户自定义函数filter(func)对RDD中的每个元素都使用func,返回使func为true的元素构成的RDD,其中func为用户自定义函数flatMap(func)对RDD中的每个元素进行map操作后,再进行扁平化union(otherDataset)合并RDD,需要保证两个RDD的元素类型一致groupByKey(numPartitions)按键分组,在键值对(K,V)组成的RDD上调用时,返回(K,Iterable[V])对组成的新RDD。numPartitions用于设置分组后RDD的分区个数,默认分组后的分区个数与分组前的个数相等reduceByKey(func,[numPartitions])聚合具有相同键的值RDD行动操作RDD行动操作用于执行计算并按指定方式输出结果。行动操作接收RDD作为输入,但返回非RDD类型的值或结果。在RDD执行过程中,真正的计算发生在RDD行动操作。RDD行动操作通过如reduce()、count()、take()、countByKey()等各具功能的行动算子实现RDD基本操作算子解释reduce(func)通过函数func聚集RDD中的所有元素。函数func接收两个参数,返回一个值collect()返回RDD中所有的元素count(n)返回RDD中所有元素的个数first(n)返回RDD中的第一个元素take(n)返回前n个元素countByKey()根据键值对(key-value)中的key进行计数,返回一个字典,对应每个key在RDD中出现的次数countByValue()根据RDD中数据的数据值进行计数,(需要注意的是,计数的数据值不是键值对中的value),同样返回一个字典,对应每个数据出现的次数saveAsTextFile(path)将RDD的元素以文本文件的形式保存到指定的路径,path可以是本地文件系统、HDFS或任何其他Hadoop支持的文件系统。Spark将会调用每个元素的toString()方法,并将它转换为文件中的一行文本foreach(func)对RDD中的每个元素都执行函数funcRDD是通过一系列转换操作从父RDD计算得到的。当RDD丢失时,可以通过血缘关系重新计算行动操作触发实际计算。上例中,系统从输入中逻辑上生成了A和C两个RDD,经过一系列转换操作,逻辑上生成了F这个RDD。血缘关系的重要性:下一代RDD依赖于上一代RDD,通过血缘关系可以恢复丢失的RDD,保证RDD计算的稳定性和可靠性。RDD是Spark的核心数据结构,RDD的血缘关系保证了数据的可靠性和容错性,理解RDD的血缘关系有助于更好地使用Spark进行大数据处理RDD血缘关系RDD之间存在依赖关系,用户可以通过已有的RDD转换生成新的RDD。新、旧RDD之间的联系称为依赖关系,分为窄依赖和宽依赖两种。窄依赖表现为父RDD的一个分区对应子RDD的一个分区,或父RDD的多个分区对应子RDD的一个分区。典型的窄依赖操作包括map()、filter()、union()、join()等。RDD之间的依赖关系宽依赖表现为父RDD的一个分区对应子RDD的多个分区。宽依赖典型的操作包括groupByKey()、sortByKey()等。RDD之间的依赖关系Spark的依赖关系设计使其具有良好的容错性,并大大提升了执行速度。RDD通过血缘关系记录了它是如何从其他RDD中演变过来的。当某个RDD的部分分区数据丢失时,它可以通过血缘关系获取足够的信息,重新计算和恢复丢失的数据分区。相对而言,窄依赖的失败恢复更为高效,只需要根据父RDD的分区重新计算丢失的分区即可,而不需要重新计算父RDD的所有分区。而对于宽依赖来说,即使只是单个节点失效导致RDD的一个分区失效,也需要重新计算父RDD的所有分区,开销较大。宽依赖操作类似于将父RDD中所有分区的记录进行“洗牌”,数据被打散后在子RDD中进行重组。RDD之间的依赖关系DAG阶段划分的重要性:确定执行顺序,优化计算效率。宽依赖会将DAG分为不同的阶段不同阶段不能并行计算:后面阶段的RDD计算需要等待前面阶段RDD的所有分区全部计算完毕后才能进行。RDD行动操作与阶段划分从行动操作开始倒序划分阶段窄依赖操作划分到同一个执行阶段宽依赖操作划分到新的执行阶段DAG阶段划分示例:DAG阶段划分的详细过程根据读入数据生成RDDA、C和E经过一系列转换操作得到新的RDDG只有groupByKey()、join()操作是宽依赖,Spark会以此为边界将其前后划分成不同的阶段。DAG阶段划分流水线操作与计算效率在Stage2中,map()和union()操作形成流水线操作。通过map()操作生成的分区可以不用等待整个RDD计算结束,而是继续进行union()操作,大大提高了计算的效率。DAG阶段划分RDD的持久化是Spark用于提高计算效率和节省资源的重要机制。RDD是惰性求值的,每次对某个RDD调用行动操作时都会重新计算该RDD及其依赖。如果需要多次使用同一个RDD,那么消耗会非常大。为了避免多次计算同一个RDD,可以对RDD数据进行持久化。persist()和cache()是用于将任意RDD缓存到内存或磁盘文件系统中的方法。缓存是容错的,如果一个RDD分片丢失,可以通过构建RDD的转换操作自动重构。已缓存的RDD被使用时,存取速度会大大提升。一般情况下,Executor60%的内存用于缓存RDD数据,剩下的40%用于执行任务。持久化cache()只能将RDD缓存到内存中,是persist()的特例方法。而persist()可以让用户根据需求指定一个持久化级别。对于
MEMORY_AND_DISK和MEMORY_AND_DISK_SER级别,系统会首先将数据保存在内存中,如果内存不够,则将溢出部分写入磁盘中。另外,为了提高缓存的容错性,可以在持久化级别名称的后面加上“_2”,将持久化数据存储为两份,如MEMORY_ONLY_2。不同持久化级别的目的是满足内存使用和CPU效率权衡上的不同需求。
将上述三段合并为一段更紧凑一些。持久化级别使用空间CPU时间是否在内存是否在磁盘MEMORY_ONLY高低是否MEMORY_ONLY_SER低高是否MEMORY_AND_DISK高中部分部分MEMORY_AND_DISK_SER低高部分部分DISK_ONLY低高否是可以通过以下步骤选择合适的持久化级别。如果RDD可以很好地与默认的存储级别(MEMORY_ONLY)契合,那么不需要做任何修改。MEMORY_ONLY是CPU使用效率最高的选项,该存储级别使得RDD的操作尽可能快。如果RDD不能与默认的存储级别较好契合,那么可以尝试使用MEMORY_ONLY_SER,并选择一个快速序列化的库,使得对象在有比较高的空间使用率的情况下,依然可以较快被访问。除非数据集的计算量特别大或需要过滤大量数据,否则应尽量避免将数据存储至硬盘上。重新计算一个分区的速度与从硬盘中读取的速度基本差不多。持久化如果希望拥有较强的故障恢复能力,可以使用复制存储级别(MEMORY_ONLY_2)。所有的存储级别都有通过重新计算丢失数据来恢复错误的容错机制。复制存储级别可以让任务在RDD上持续运行,而不需要等待丢失的分区被重新计算。在不需要缓存RDD时,应及时使用unpersist()算子来释放缓存的RDD数据。持久化1Spark特点目录Spark简介2Spark运行架构与流程3SparkRDD4Spark生态圈5Spark的设计遵循“一站式”的理念,即在同一个平台上支持不同的大数据应用场景,包括复杂的批量数据处理、基于历史数据的交互式查询以及基于实时数据的处理等。这使得Spark能够灵活适应各种计算需求,从数据分析到机器学习再到实时数据处理,都能找到其在生态圈中的相应位置。Spark生态圈ApacheSpark生态圈是一个多功能、强大的大数据计算平台Spark生态圈由加州大学伯克利分校的AMP实验室创建,并以其核心组件SparkCore为中心,构建了一个广泛的大数据和机器学习工具集合。这个生态系统涵盖了多种不同的技术与应用,具体来说,包含以下几个重要组成部分:SparkCore:提供Spark的基础架构与API,支持分布式数据处理的基础功能。SparkSQL:用于操作结构化数据和执行SQL查询的工具,它提供了与Hive兼容的查询接口以及DataFrames和DatasetsAPI来操作数据。Spark生态圈SparkStreaming:支持实时数据流处理,允许用户对来自多种数据源的实时数据进行处理,并且与SparkCore的RDDAPI高度集成。MLlib:一个机器学习库,提供了一系列常用的机器学习算法和工具,包括分类、回归、聚类等,以及模型评估和参数调整等功能。GraphX:用于进行分布式图计算的框架,可以处理大规模的图数据,并提供了一些常用图算法的实现。Spark生态圈PySpark大数据分析1PySpark子模块目录PySpark简介2Python在数据分析和机器学习领域拥有丰富的库资源,如NumPy、SciPy、Pandas和Scikit-learn等,因此成为数据科学家和数据分析师处理和分析数据的热门语言。Spark是目前处理和使用大数据的主流框架之一,其设计初衷是加速迭代计算,非常适合大数据分析、机器学习等应用场景。为了兼顾Spark和Python的优势,ApacheSpark开源社区推出了PySpark。与原生Python相比,PySpark的优势在于其能够运行在集群上,而不仅仅局限于单机环境。因此,当数据量过大以至于单机无法处理,或数据存储在HDFS中,或需要进行分布式/并行计算时,可以选择使用PySpark。PySpark简介1PySpark子模块目录PySpark简介2
PySpark组成一组公共类处理结构化数据的SQL模块处理流数据的Streaming模块机器学习的MLlib和ML两个包PySpark子模块PySpark核心类PySpark的核心类组成:公共类中的SparkContext、RDD;pyspark.streaming模块中的StreamingContext、DStream;pyspark.sql模块中的SparkSession、DataFramePySpark子模块类型类名说明公共类pyspark.SparkContextPySpark编程的主要入口点公共类pyspark.RDDPySpark数据抽象Streaming模块pyspark.streaming.StreamingContextPySpark流编程主要入口点Streaming模块pyspark.streaming.DStreamPySpark流数据抽象SQL模块pyspark.sql.SparkSessionPySparkSQL编程入口点SQL模块pyspark.sql.DataFrame处理结构化数据PySpark中11个公共类:Accumulator、Broadcast、RDD、SparkConf、SparkContext、SparkFiles、StorageLevel、TaskContext、RDDBarrier、BarrierTaskContext和BarrierTaskInfo。PySpark公共类类名说明Accumulator累加器,只允许增加值Broadcast广播变量,可用于在任务之间复用RDDPySpark中基础抽象SparkConf用于PySpark应用程序的参数配置SparkContextPySpark应用程序的编程入口点SparkFiles提供对文件进行操作的相关功能StorageLevel用于数据存储级别的设置TaskContext可以提供关于当前运行任务的信息RDDBarrier用屏障包装RDD以实现屏障执行BarrierTaskContext为屏障执行提供额外信息和工具BarrierTaskInfo与屏障作业有关的信息PySpark主要公共类SparkContext详解功能入口SparkContext是所有Spark功能的入口点,是运行任何Spark应用程序时必须初始化的对象。在编写PySpark程序时,首先需要创建一个SparkContext实例,传入一个SparkConf对象作为参数。通过这个SparkContext实例,可以提交作业、分发任务,并进行应用的注册。驱动程序当运行一个Spark应用程序时,会启动一个驱动程序,其中包含main函数。SparkContext会在驱动程序中启动,并在工作节点上的executor中运行操作。PySpark公共类连接集群:SparkContext表示与Spark集群的连接,它是创建RDD(弹性分布式数据集)和广播变量的基础。默认实例:默认情况下,PySpark将SparkContext实例命名为'sc',因此在大多数情况下,可以直接使用这个名字来访问SparkContext的实例。数据操作提供了许多用于操作RDD的方法,例如map、filter、reduce等,使得对数据的操作变得简单高效。支持广播变量,可以被缓存在每台机器上,以便在每个任务中快速访问而无需通过网络传输。PySpark公共类PySpark主要公共类SparkConf配置管理详解
SparkConf是PySpark中用于设置和管理Spark应用程序参数的关键类,允许开发者定制应用程序行为,以适应不同的需求和环境。创建SparkConf对象:通过调用SparkConf()构造函数创建新的SparkConf对象。构造函数接受可选的字典参数来指定默认配置选项。加载系统属性:SparkConf自动从Java系统属性中加载所有以spark.为前缀的属性。PySpark公共类设置和获取配置选项:使用set(key,value)方法设置配置选项。使用get(key)方法获取配置选项的值。尝试获取未设置的配置选项会抛出异常。优先级规则:使用set()方法设置的配置值优先于从系统属性中加载的值。不可变性和传递性:创建后,SparkCo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题申报参考:兼容视听障碍的VR博物馆时空导览与审美补偿研究
- 基于区块链技术的2025年物流追踪系统开发合同3篇
- 助理个人工作总结15篇
- 2025年度渔船买卖合同(含渔民福利保障)4篇
- 2025年度个人与金融机构客户信息保密及合规管理协议4篇
- 二零二五版林业资源保护与木材采购合作协议4篇
- 二零二五年度出差人员差旅费用结算与报销合同4篇
- WPS格式2024年度建筑工程施工合作合同一
- 退房时2025年度物业管理费结算协议3篇
- 二零二五年度充电桩充电接口标准制定合同3篇
- 2025-2030年中国草莓市场竞争格局及发展趋势分析报告
- 华为智慧园区解决方案介绍
- 奕成玻璃基板先进封装中试线项目环评报告表
- 广西壮族自治区房屋建筑和市政基础设施全过程工程咨询服务招标文件范本(2020年版)修订版
- 人教版八年级英语上册期末专项复习-完形填空和阅读理解(含答案)
- 2024新版有限空间作业安全大培训
- GB/T 44304-2024精细陶瓷室温断裂阻力试验方法压痕(IF)法
- 年度董事会工作计划
- 《退休不褪色余热亦生辉》学校退休教师欢送会
- 02R112拱顶油罐图集
- 2021年新教材重庆生物高考真题(含答案解析)
评论
0/150
提交评论