数据科学每日总结--Day46--大数据分析

pyspark

是一个用于大规模数据处理的python库,能够利用Spark分布式计算引擎的强大能力(如内存计算、容错性),用来读取海量数据(TB/PB级),从而进行数据清洗、转换、聚合、机器学习等操作,一般用于电商数据分析,用户行为模式分析,网站点击流分析等

弹性分布式数据集(RDD)

定义

RDD是Spark中的基本抽象(即对象),表示一个不可变的、可并行作的元素分区集合,其名字代表了其拥有的特点:分布式(数据被分割成多个分区,分布在集群的不同节点上),弹性(数据丢失时可以自动重建),不可变(一旦创建就不能修改,只能通过转换生成新的 RDD),内存计算(尽可能将数据保存在内存中加速计算),简单来说就是就像是一个分布式的、只读的、自动备份的数组,分布在多台机器上

常用函数
  1. partitionBy() : 根据指定的分区器(Partitioner)对键值对 RDD 重新分区

  2. repartition():通过 Shuffle 重新分布数据,增加或减少分区数

  3. coalesce():减少分区数(分区就是将文件拆分为多少个小块,指的是要执行的任务数)

  4. randomSplit(): 按指定权重随机将RDD拆分为多个RDD

  5. map():输入与输出一一对应,只改变元素的值,不改变数量

  6. flatmap():与map相比,一个输入可以产生多个输出

transformation与action

transformation:能够构建数据处理流水线,比如解析,特征提取,计算统计等,且spark能够自动优化其链条,比如合并相邻的filter,调整执行顺序等 action:可以理解为transformation的执行者,两者可以说前者是计划的构建,后者负责计划的实施,不过注意action会触发之前所有的transformation,需要仔细构建逻辑。

键值对RDD

键值对RDD:处理成对的(key, value)数据,支持按键聚合、连接、分组等高级操作,能做分区器,数据本地性优化等性能优化 当有多个键值对RDD时,一般会通过连接(join)和协同分组,从而能够基于相同的键进行交互

相关推荐
Chef_Chen5 天前
数据科学每日总结--Day42--大数据分析
大数据分析
青云交2 个月前
Java 大视界 -- Java 大数据在智能物流无人配送车路径规划与协同调度中的应用
java·spark·路径规划·大数据分析·智能物流·无人配送车·协同调度
搞科研的小刘选手3 个月前
【经济方向专题会议】第二届经济数据分析与人工智能国际学术会议 (EDAI 2025)
人工智能·机器学习·网络安全·大数据分析·经济·经济数据分析·绿色经济
镜舟科技8 个月前
数据湖和数据仓库的区别
数据仓库·物联网·ai·数据存储·数据湖·湖仓一体·大数据分析
源码集结号9 个月前
java智慧城管综合管理系统源码,前端框架:vue+element;后端框架:springboot;移动端:uniapp开发,技术前沿,可扩展性强
java·vue.js·spring boot·源代码·大数据分析·城管·电子办案
青云交10 个月前
Java 大视界 -- Java 大数据在智慧港口集装箱调度与物流效率提升中的应用创新(159)
java·大数据·物联网·智慧港口·大数据分析·集装箱调度·物流效率
NBI大数据可视化分析1 年前
数据驱动企业数据智能化发展-通过财务数据分析模型评估企业经营健康度
数据分析·数据可视化·bi·大数据分析·财务分析
gs801401 年前
JuiceFS 详解:一款为云原生设计的高性能分布式文件系统
机器学习·云原生·对象存储·大数据分析·分布式文件系统·juicefs·高性能存储
友培1 年前
工业大数据分析算法实战-day01
算法·数据挖掘·数据分析·实战·大数据分析·工业设备