【PySpark大数据分析概述】01 大数据分析概述

embedded/2025/4/1 2:00:04/

在这里插入图片描述

【作者主页】Francek Chen
【专栏介绍】 ⌈ ⌈ PySpark数据分析与应用 ⌋ ⌋ PySpark作为Apache Spark的Python API,融合Python易用性与Spark分布式计算能力,专为大规模数据处理设计。支持批处理、流计算、机器学习 (MLlib) 和图计算 (GraphX),通过内存计算与弹性数据集 (RDD) 优化性能,提供DataFrame API和SQL接口简化结构化数据处理。可跨Hadoop/云平台部署,适用于ETL、日志分析、实时推荐等场景,具备TB级数据横向扩展能力,并与Pandas等Python工具无缝集成,兼顾高效分析与易用性。
【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/PyTorch_deep_learning。

文章目录


一、大数据的概念

大数据又被称为海量数据,目前学界对大数据的定义尚未统一。

  • 国际期刊Nature和Science对大数据的贡献:首次正式提出“大数据”这一专有名词,首次综合分析了大数据对人类生活的影响,并详细描述了人类面临的数据困境。
  • 麦肯锡全球研究院的定义:以数据规模是否能够被经典数据库及时处理来定义大数据,认为大数据是指数据规模大小超过经典数据库系统收集、存储、管理和分析能力的数据集。
  • NIST的定义:具有规模巨大、种类繁多、增长速度快和变化频繁的特征,需要可扩展体系结构来有效存储、处理和分析的广泛数据集。
  • IBM的定义:大数据的“4V”特性,即Volume(数量)、Variety(多样)、Velocity(速度)和Value(价值),后来又加入了Veracity(真实性),形成了大数据的“5V”特性。

大数据4V特性如下表。

表1 大数据4V特性
特征说明
Volume(数量)当前典型计算机硬盘容量为TB量级,PB是大数据的临界点。据IDC预测,到2025年全球数据量将达到175ZB。
Variety(形式)数据类型包括结构化数据、半结构化和非结构化数据,如XML、邮件、博客、图片、音频、视频等。多样的数据类型对数据的整合、存储、分析和处理提出了更高要求。
Velocity(处理速度)现代传感技术、网络技术和计算机技术的发展使得数据的产生、存储、分析和处理的速度非常快。业界对大数据的处理能力有“1秒定律”的要求,即从数据产生到获取价值的时间应尽可能短。
Value(价值)由于大数据的规模不断扩大,单位数据的价值密度在降低,但整体数据的价值却在提高。例如,监控视频中可能只有一两秒的数据是有用的。许多学者和专家将大数据比作黄金和石油,表示其蕴含的巨大商业价值。

大数据以大体量、多样性、快速产生和处理以及低价值密度为主要特征。需要新的体系架构、技术、算法和分析方法来处理大数据大数据是一个动态的定义,不同行业有不同的理解,衡量标准会随着技术的进步而改变。

二、大数据分析的概念

什么是大数据分析?大数据分析是指对规模巨大、海量的数据进行分析,挖掘数据蕴含的价值和知识。

数据分析与传统数据分析的区别:传统的数据分析主要基于统计分析方法,而大数据分析则更侧重于预测性分析和预案性分析,处理大规模、多样性的复杂数据。

数据分析的目的:将隐藏在大量数据背后的信息集中和提炼出来,总结出研究对象的内在规律,帮助管理者进行判断和决策。

数据分析的四个层次:描述性分析、诊断性分析、预测性分析和预案性分析。

  • 描述性分析描述数据特征的各项活动,包括频数分析、集中趋势分析、离散程度分析等。
  • 诊断性分析用于获得事件发生的原因,寻找影响这些事件发生的因素。
  • 预测性分析涵盖各种统计技术,如数据挖掘、机器学习等,用于对未来将要发生的事件进行预测。
  • 预案性分析规定应该采取的行动,提供可以推理的结果,可以获得优势或降低风险。

数据分析的思维方式转变: 全样而非抽样、混杂而非纯净、趋势而非精确、相关而非因果。

  • 全样而非抽样。对所有相关数据进行分析,不再基于抽样样本进行随机分析。
  • 混杂而非纯净。接收混杂的数据,不必担心某个数据点会对整套分析造成不利影响。
  • 趋势而非精确。可以忽略微观层面上的精确度,在宏观层面上拥有更好的洞察力。
  • 相关而非因果。寻找事物之间的相关关系,不探究因果关系。

在这里插入图片描述

图1 大数据分析的思维方式转变

三、大数据分析的流程

数据分析源于业务需求,其完整的流程包括明确目的、数据采集与存储、数据预处理、分析与建模、模型评估以及可视化应用。

1. 明确目的

每个大数据分析项目都有独特的业务背景和需要解决的问题。在项目开始之前,应考虑数据对象、商业目的、业务需求等问题。只有深入理解业务背景,明确数据分析目的,并确定分析思路,才能确保数据分析过程的有效性。

2. 数据采集与存储

根据指标的分解结果,可以确定数据选取范围,并采集目标数据。采集的数据可以来自企业内部数据库中的历史数据、 Excel表格数据、文本文件以及实时数据等。此外,互联网和行业领域相关数据也是重要的数据来源。

3. 数据预处理

数据预处理是大数据处理中不可或缺的环节。为了获得可靠的数据分析和挖掘结果,必须利用数据预处理手段来提高大数据的质量,贯彻高质量发展精神。数据预处理包括数据合并、数据清洗、数据标准化、数据变换等。

4. 分析与建模

分析与建模是大数据处理的核心环节,涵盖了统计分析、机器学习、数据挖掘和模式识别等多个领域的技术和方法。在分析阶段,可以采用对比分析、分组分析、交叉分析和回归分析等方法。

5. 模型评估

评估是对模型进行全面评估的过程,包括建模过程评估和模型结果评估。具体来说,建模过程评估主要关注模型的精度、准确性、效率和通用性等方面;而模型结果评估则需要考虑是否有遗漏的业务问题,以及模型结果是否解决了业务问题。

6. 可视化应用

将分析结果以可视化的形式呈现。数据可视化的目标是以图形方式清晰、有效地展示信息。通过不同角度的可视化图形,人们可以更好地解读数据的本质,更直观地解释数据之间的特征和属性情况,并更深入地理解数据和数据所代表事件之间的关联。最终,将编写分析报告,并将分析结果应用于实际业务中,实现数据分析的真正价值——解决问题、创造商业价值并提供决策依据。

四、大数据分析的应用场景

大数据无处不在,应用于各行各业。个性化推荐、预测性分析是两个典型的应用场景。

1. 个性化推荐

数据分析不仅能够帮助用户发现有价值的信息,还能将信息推荐给可能感兴趣的用户。例如,电子商务网站、社交网站的音乐、电影和图书推荐,以及媒体根据用户的品位和阅读习惯进行个性化推荐。

2. 预测性分析

预测性分析是大数据分析的核心应用之一。它基于大数据和预测模型预测未来某事件发生的概率。例如:

  • 设备管理领域:通过物联网技术收集和分析设备上的数据流,建立设备管理模型,预测设备故障,以确保 设备正常作业。
  • 交通物流分析领域:通过业务系统和全球定位系统(GPS)获得数据,对客户使用数据构建交通状况预测分析模型,有效预测实时路况、物流状况、车流量、客流量和货物吞吐量等,进而提前补货,制定库存管理策略。
  • 公安机关、金融机构、电信部门的应用:公安机关、各大金融机构、电信部门等可以利用用户基本信息、用户交易信息、用户通话短信信息等数据,识别可能发生的潜在欺诈交易,做到未雨绸缪。

五、大数据技术体系

大数据技术包括大数据采集、存储、资源调度、计算、查询与应用分析等,典型的开源框架如下。

1. 大数据采集框架

负责从外部数据源采集数据,包括大数据收集、交换和消息处理等系统框架。典型框架:

  • Flume:分布式海量日志采集、聚合和传输框架。作为非关系数据采集工具,Flume可近实时采集流式日志数据,经过滤、聚集后加载到Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)等存储系统中。
  • Sqoop:数据迁移工具框架,用于在关系数据库和Hadoop之间交换数据。利用Sqoop,可以将数据从MySQL、Oracle等关系数据库中导人Hadoop中,如HDFS、Hive中,也可以将数据从Hadoop导出到关系数据库中。
  • Kafka:发布/订阅的消息系统框架,用于处理实时数据。作为分布式消息系统,Kafka可以处理大量的数据,能够将消息从一个端点传递到另一个端点,能够在离线和实时两种大数据计算架构中处理数据。

2. 大数据存储框架

负责对大数据进行存储。典型框架:

  • HDFS:Hadoop的核心子项目,用于处理超大文件的需求,数据在相同节点上以复制的方式进行存储,以实现将数据合并计算的目的。
  • Hbase:是一个分布式、面向列、高可靠性、高性能的分布式存储系统,适用于存储结构化和半结构化的稀疏数据。
  • Cassandra:一种分布式NoSQL数据库,用于处理大量分布在多个数据中心的服务器上的数据。
  • MongoDB:一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案等。

3. 大数据计算框架

大数据计算根据对时间性能要求分为批处理、交互式处理和实时处理。批处理对时间要求最低,一般要求处理时间为分钟到小时级别,甚至天级别,追求的是高吞吐率,即单位时间内处理的数据量尽可能大。交互式处理对时间要求比较高,一般要求处理时间为秒级别,这类框架需要与使用者进行交互,因此会提供类结构查询语言以便于用户使用。实时处理对时间要求最高,一般要求处理时间延迟在秒级以内。

典型计算框架:

  • MapReduce:一个分布式的离线计算框架,用于海量数据的并行运算,是Hadoop数据分析的核心MapReduce框架使得开发人员在不会分布式并行编程的情况下,也可以将编写前业务逻辑代码运行在分布式系统上,开发人员可以将绝大部分的工作集中于业务逻上的开发,具体的计算只需要交给MapReduce框架即可。
  • Spark:一栈式计算框架,适用于大规模数据处理,能更好地适用于数据挖掘与机器学习等需要迭代的算法中,高效地支持更多计算模式,包括交互式查询和流处理等。Spark是MapReduce的替代方案,是对Hadoop的补充,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足。Spark旨在成为运行批处理、数据流处理、交互处理、图形处理和机器学习等应用的整合平台。目前Spark已经成为大数据领域最热门的技术之一。
  • Flink:一个开源的、适用于流处理和批处理的分布式数据处理框架,其核心是一个流式的数据流执行框架。Flink旨在成为运行批处理、数据流处理、交互处理、图形处理和机器学习等应用的一栈式平台。
  • Storm:是一个开源的分布式实时大数据处理系统。Storm擅长实时处理海量数据,而非批处理。Storm用于在容错和水平可扩展方法中处理大量数据。

4. 资源调度框架

提高资源利用率、降低运营成本。典型框架:

  • YARN:YARN(Yet Another Resource Negotiator)是Hadoop的资源管理和作业调度系统。作为Apache Hadoop的核心组件之一,YARN负责将系统资源分配给在Hadoop集群中运行的各种应用程序,并调度在不同集群节点上执行的任务。
  • Mesos: 一个集群管理器,提供了有效的资源隔离和共享跨分布式应用。

5. 数据查询与分析框架

数据分析层直接与用户应用程序对接,为其提供易用的数据处理工具。为了让用户更轻松地分析数据,计算框架会提供多样化的工具,包括应用程序接口(Application Program Interface,API)、类SQL、数据挖掘软件开发工具包(Software Development Kit,SDK)等。典型的数据查询与分析框架有Hive、 Spark SQL、Mahout等。

  • Hive:基于Hadoop的数据仓库工具,可以将结构化数据文件映射为一张数据库表,并提供类SQL语句的查询功能。Hive的优点在于学习成本低,可以通过HQL语句快速实现简单的MapReduce统计,而无需开发专门的MapReduce应用。
  • Spark SQL:Spark的模块,用于处理结构化数据。
  • Mahout:一个基于Hadoop之上的机器学习和数据挖掘的分布式框架。Mahout包含了许多实现,包括聚类、分类、推荐(过滤)、频繁子项挖掘,其中核心的三大算法为推荐、聚类及分类。

小结

大数据技术体系庞大且复杂,在学习过程中,我们应该培养解决问题的自主能力。遇到问题时,可第一时间利用搜索引擎寻找解决方案,学会独立解决问题,充分利用互联网资源。在参考资料的选择上,应优先查阅官方文档,以便获得最权威、最准确的信息。同时,我们需要深人理解各个技术的思想与原理,积极提问、勤于思考。例如:MapReduce是如何分而治之的策略的?HDFS数据到底存储在哪里,副本机制是如何工作的?YARN是什么,它的功能有哪些?Spark和Flink各自的优势和特点是什么?为什么Spark不能完全取代MapReduce?此外,我们还应该通过动手实践,来加深对大数据先进技术的理解,掌握大数据技术的精髓,走在时代前列,为国、为民服务。

欢迎 点赞👍 | 收藏⭐ | 评论✍ | 关注🤗

在这里插入图片描述


http://www.ppmy.cn/embedded/177604.html

相关文章

Pyside6介绍和开发第一个程序

Pyside6介绍 PySide6 是一个用于创建 图形用户界面(GUI) 的 Python 库,它是 Qt 框架的官方 Python 绑定。Qt 是一个功能强大的跨平台 C 框架,广泛用于开发桌面应用程序、移动应用程序和嵌入式系统。PySide6 允许开发者使用 Pytho…

Polhemus FastScan 单摄像头3D激光扫描器

FastSCAN Cobra是Polhemus公司研制的手持激光扫描仪。与以前的产品比较,它节省了30%的费用,体积也减小了一半 ,但仍然保留了所有功能,使用和携带都更加方便。作为超小的手持激光扫描仪,FastSCAN Cobra对扫描三维物体具…

HCIP(VLAN综合实验)

实验拓补图 实验分析 一、实验目的 掌握VLAN的创建和配置方法理解VLAN在局域网中的作用学习如何通过VLAN实现网络隔离和通信 二、实验环境 交换机(SW1、SW2、SW3)个人电脑(PC1、PC2、PC3、PC4、PC5、PC6)路由器(R1…

记录一次TDSQL事务太大拆过binlog阈值报错

记录一次TDSQL事务太大拆过binlog阈值报错处理过程 1、排查任何类型数据库故障的第一步, 同步实例信息、报错内容、报错时间段、当前是否恢复、如何感知到数据库问题的、对应用有什么影响、系统允许的时间窗口。 2、明确报错内容为单次写入binlog量超过阈值 3、登陆…

【极速版 -- 大模型入门到进阶】LORA:大模型轻量级微调

文章目录 🌊 有没有低成本的方法微调大模型?🌊 LoRA 的核心思想🌊 LoRA 的初始化和 r r r 的值设定🌊 LoRA 实战:LoraConfig参数详解 论文指路:LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE M…

鸿蒙项目源码-记账本app个人财物管理-原创!原创!原创!

鸿蒙记账项目源码个人财务管理含文档包运行成功ArkTS语言。 我一个月写的原创作品,请尊重原创。 原创作品,盗版必究!!! api12 SDK5.0.0仅适用于最新的2024版本DevEco studio 共9个页面:广告倒计时页、登录、…

Go语言手动内存对齐的四大场景与实践指南

Go语言手动内存对齐的四大场景与实践指南 引言:Go的内存对齐机制 Go语言通过编译器自动处理内存对齐问题,开发者通常无需关心底层细节。然而,在特定场景下,手动干预内存对齐是避免程序崩溃或数据错乱的必要操作。本文将深入探讨G…

敏捷测试(Agile Testing)

敏捷测试(Agile Testing) 敏捷测试是在敏捷开发(Agile Development)环境下进行的软件测试方法,强调快速反馈、持续测试、团队协作,以确保软件质量贯穿整个开发周期。与传统瀑布模型不同,敏捷测…