自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 transformation算子基本原理五

前言        本篇文章从源码角度分析下join、leftouterjoin、rightouterjoin、fullouterjoin、intersection五个算子的基本原理,他们底层都是依赖cogroup算子,关于cogroup算子的原理请参考。下面分别分析以上五个算子的源码join def join[W](other: RDD[(K, W)], partitioner: Partitioner): RDD[(

2021-12-29 22:35:27 142

原创 transformation算子基本原理四

前言       本文主要从源码角度分析下cogroup算子的原理。把cogroup单独拿出来介绍是因为它是很多其它算子的基础,如join、leftjoin、rightjoin、fullouterjoin、intersection等。cogroup是一个比较底层的算子,直接应用很少,先介绍一下它的用法和功能用例       cogroup是PairRDDFunct

2021-12-29 21:12:48 776

原创 Iterator之flatMap基本原理

def flatMap[B](f: A => GenTraversableOnce[B]): Iterator[B] = new AbstractIterator[B] { // 定义一个空的迭代器。注意泛型是B,当前迭代器中元素的类型是A private var cur: Iterator[B] = empty // 得到下一个迭代器。将原迭代器中每一个元素通过f的计算得到一个新的迭代器 private def nextCur(): Unit = { cur = ..

2021-12-27 21:55:10 405

原创 transformation算子基本原理三

前言本文主要从源码角度分析下groupbykey、reducebykey、foldbykey、aggregatebykey四个算子的基本原理。他们都是PairRDDFunctions的成员方法,最终调用combineByKeyWithClassTag,生成ShuffledRDD。所以先得理解combineByKeyWithClassTagcombineByKeyWithClassTagcombineByKeyWithClassTag的作用是根据key聚合,然后根据传入的逻辑对聚合的value进行计算。

2021-12-27 21:50:35 1034

原创 transformation算子基本原理二

前言        mapValues与map算子、flatMapValues与flatMap算子的原理基本上相同。为什么没有把这两个算子放在transformation基本原理一中而单拎出来,是因为"transformation基本原理一"中的算子都属于RDD类,而mapValues、flatMapValues属于PairRDDFunctions类,作用在元素类型为(k,v)的RDD上,其返回RDD的元素类型也是(k,v)

2021-12-24 22:37:47 936

原创 transformation算子基本原理一

文章目录前言一、mapvalues二、flatmapvalues1.引入库2.读入数据三、mappartitions四、mappartitionswithindex五、map六、flatmap七、filter总结前言本文主要从源码分析mapvalues,、flatmapvalues、mappartitions,、mappartitionswithindex、map、flatmap、fliter等七个算子的基本原理一、mapvalues示例:pandas 是基于NumPy 的一种工具,该工具是为了

2021-12-22 22:22:31 307

原创 spark分组排序三

前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot a

2021-12-22 21:07:50 1287

原创 spark分组排序二

文章目录前言源码总结前言在[sarpk分组排序一](https://editor.csdn.net/md/?articleId=121964235)一文中最后提到,此方案可能会导致内存溢出。源码import org.apache.spark.{Partitioner, SparkConf, SparkContext}object Demo2 { def main(args: Array[String]): Unit = { val sc = new SparkContext(

2021-12-17 19:19:43 1296

原创 堆排序原理

文章目录前言前言写了一个小例子,理解下创建堆和堆排序的过程。记录下,方便以后复习。直接上源码吧,注释比较详细。如有问题,希望各位大佬指正import scala.collection.mutable.ArrayBufferimport scala.util.control.Breaks.{break, breakable}object Heap { def main(args: Array[String]): Unit = { // 任意创建一个数组 val arr =

2021-12-17 14:24:10 99

原创 MapPartitionsRDD基本原理

文章目录一、简介二、使用步骤1.引入库2.读入数据总结一、简介MapPartitionsRDD是一个比较基础的RDD, 很多非shuffle算子生成的RDD就是MapPartitionsRDD,如transformation算子基本原理一中提到的七个算子,二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport w

2021-12-16 17:52:25 1174

原创 spark分组排序一

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、样例数据二、样例源码三、总结思路问题前言以一个小例子:统计每个品类下最受欢迎的sku,来记录下spark分组排序的思路。此代码是参考多易教育spark课程编写一、样例数据cate1,sku01cate1,sku02cate1,sku01cate1,sk

2021-12-16 00:30:45 1758

原创 PriorityQueue源码分析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、offer(E e)二、poll()1.引入库总结前言主要分析offer(E e) 和 poll() 两个防范一、offer(E e)offer(E e)源码如下 public boolean offer(E e) { if (e == null) throw new NullPointerException(); modCount++;

2021-12-13 23:58:25 219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除