PySpark
文章平均质量分 63
rgc_520_zyl
这个作者很懒,什么都没留下…
展开
-
Spark RDD中依赖关系与阶段划分
依赖关系含义:spark中RDD之间,先执行的叫父RDD,后执行的叫子RDD;那么 父RDD分区中元素流向子分区RDD的方式叫做依赖关系,一般有2种,如下窄依赖: 父RDD每个分区的元素只能只能流向子RDD某一个分区;而 子RDD某个分区元素可以来自多个父RDD分区; 如 map,filter等宽依赖:父RDD每个分区的元素可以流向子RDD多个分区;判断依赖关系方法当某个RDD出现shuffle(洗牌)操作时,基本都是宽依赖;如 groupByKey reduceByKey sortB原创 2021-08-11 15:33:05 · 448 阅读 · 0 评论 -
PySpark groupBy groupByKey用法
用法groupBy: 每个元素根据用户指定的函数运行结果作为key,然后进行分组;如果需要 自定义分组的key可以使用此方法;groupByKey:rdd每个元素根据第一个值作为key进行分组用法示例# -*- coding: utf-8 -*-"""(C) rgcAll rights reservedcreate time '2021/5/30 21:01'Usage:"""# 构建sparkfrom pyspark.conf import SparkConffrom原创 2021-08-11 15:32:07 · 4406 阅读 · 0 评论 -
PySpark reduce reduceByKey用法
用法reduce:对rdd内部 元素 进行迭代操作reduce方法 分区内和分区间调用相同的用户给定的函数;先在每个分区内执行完用户给定的函数后,将每个分区的结果通过collect()方法统计到Driver端;然后在Driver端 通过用户给定的函数进行分区间操作;其实:reduce方法调用的元素间的迭代操作就是用的 python自带的 functools reduce方法reduceByKey:先根据key对每个分区内的数据进行分组,然后调用用户指定的函数对每个key的values进行原创 2021-08-11 15:31:10 · 5488 阅读 · 0 评论 -
Spark RDD cache persist checkpoint用法及区别
用法cachepersistcheckpoint特点cachepersistcheckpoint区别cachepersistcheckpoint原创 2021-08-11 15:24:47 · 404 阅读 · 0 评论 -
PySpark 累加器使用及自定义累加器
累加器(accumulator)功能实现在Driver端和Executor端共享变量 写的功能实现机制Driver端定义的变量,在Executor端的每个Task都会得到这个变量的副本;在每个Task对自己内部的变量副本值更新完成后,传回给Driver端,然后将每个变量副本的值进行累计操作;触发/生效 时机受惰性求值机制的影响,只有在行动算子执行时 累加器才起作用;使用地方最好只在行动算子中使用,不要在转换算子中使用,因为转换算子可能出现失败时会重试,这时对应的累加器的值也会原创 2021-06-17 21:28:20 · 2051 阅读 · 2 评论 -
PySpark map mapValues用法
用法map: 对rdd每个元素(包括key,value) 进行 数据转换操作,rdd的元素个数不能改变mapValues:对rdd每个元素的values进行 数据转换操作,rdd的元素个数不能改变;其实 每个元素 格式大致为: RDD( (‘key1’,[val1,val2]),(‘key2’,[val11,val21]) );而 mapValues就是 通过一个函数对 每个元素的values作为参数传给函数;如 sum([val1,val2]);所以 mapValues是对每个元素的valu原创 2021-05-30 20:59:44 · 5040 阅读 · 0 评论 -
PySpark cogroup groupWith 使用示例
cogroup: 对2个rdd先进行合并 然后根据key进行分组, 分组的rdd每个元素的value是 再转为可迭代对象;groupWith:对多个rdd先进行合并 然后根据key进行分组, 分组的rdd每个元素的value是 再转为可迭代对象;示例代码:# -*- coding: utf-8 -*-"""(C) rgcAll rights reservedcreate time '2021/5/26 10:34'Usage:"""from pyspark.con...原创 2021-05-30 17:32:49 · 666 阅读 · 0 评论 -
PySpark中Executor进行debug的方法
问题在使用Pycharm对pyspark进行本地模式开发调试时,发现对Driver端代码可以进行debug,但是无法对Executor端代码进行debug知识准备spark:作为大数据分析计算的引擎;在面对大量数据时,自然一台机器无法满足时间和空间的需求,因此spark可以实现在多台机器上进行分布式计算;既然涉及到多机器分布式计算,就需要涉及到任务的生成及分配,计算资源的申请等等问题;spark在面对如上问题时 采用的是标准的master-slave模式;如下图所示:..原创 2021-05-30 17:31:51 · 1652 阅读 · 5 评论 -
PySpark aggregate aggregateByKey用法
RDD(Resilient Distributed Dataset):弹性分布式数据集,是Spark中最基本的数据处理模型;代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行 计算的集合。弹性 存储的弹性:内存与磁盘的自动切换; 容错的弹性:数据丢失可以自动恢复; 计算的弹性:计算出错重试机制; 分片的弹性:可根据需要重新分片。 分布式:数据存储在大数据集群不同节点上数据集:RDD 封装了计算逻辑,并不保存数据数据抽象:RDD 是一原创 2021-05-30 17:10:06 · 1095 阅读 · 0 评论