首页 > 其他分享 >2024.1.16日报

2024.1.16日报

时间:2024-01-16 20:45:30浏览次数:19  
标签:返回 2024.1 函数 16 日报 RDD func 一个 numTasks

今天继续学习spark,不过今天有些特殊,因为有些同学回来了,大伙在一起交流了一下 总体上考研的居多,所以自己也有些犹豫到底是要考研还是就业,需要深入的思考一下

 

总结:RDD 是一个数据集的表示,不仅表示了数据集,还表示了这个数据集从哪来,如何计算,主要属性包括:

分区列表
计算函数
依赖关系
分区函数(默认是 hash)
最佳位置
分区列表、分区函数、最佳位置,这三个属性其实说的就是数据集在哪,在哪计算更合适,如何分区;

计算函数、依赖关系,这两个属性其实说的是数据集怎么来的。

2.1.3 RDD API
2.1.3.1 RDD 的创建方式
① 由外部存储系统的数据集创建,包括本地的文件系统,还有所有 Hadoop 支持的数据集,比如 HDFS、Cassandra、HBase 等:

val rdd1 = sc.textFile("hdfs://node1:8020/wordcount/input/words.txt")

1
2
② 通过已有的 RDD 经过算子转换生成新的 RDD:

val rdd2=rdd1.flatMap(_.split(" "))

1
2
③ 由一个已经存在的 Scala 集合创建:

val rdd3 = sc.parallelize(Array(1,2,3,4,5,6,7,8))
或者
val rdd4 = sc.makeRDD(List(1,2,3,4,5,6,7,8))

1
2
3
4
makeRDD 方法底层调用了 parallelize 方法:

 

2.1.3.2 RDD 算子
RDD 的算子分为两类:

Transformation转换操作:返回一个新的 RDD
Action动作操作:返回值不是 RDD(无返回值或返回其他的)
注意:

RDD 不实际存储真正要计算的数据,而是记录了数据的位置在哪里,数据的转换关系(调用了什么方法,传入什么函数)。
RDD 中的所有转换都是惰性求值/延迟执行的,也就是说并不会直接计算。只有当发生一个要求返回结果给 Driver 的 Action动作时,这些转换才会真正运行。
之所以使用惰性求值/延迟执行,是因为这样可以在 Action 时对 RDD 操作形成 DAG有向无环图进行 Stage 的划分和并行优化,这种设计让 Spark 更加有效率地运行。
Transformation转换算子:

转换算子 含义
map(func) 返回一个新的 RDD,该 RDD 由每一个输入元素经过 func 函数转换后组成
filter(func) 返回一个新的 RDD,该 RDD 由经过 func 函数计算后返回值为 true 的输入元素组成
flatMap(func) 类似于 map,但是每一个输入元素可以被映射为 0 或多个输出元素(所以 func 应该返回一个序列,而不是单一元素)
mapPartitions(func) 类似于 map,但独立地在 RDD 的每一个分片上运行,因此在类型为 T 的 RDD 上运行时,func 的函数类型必须是 Iterator[T] => Iterator[U]
mapPartitionsWithIndex(func) 类似于 mapPartitions,但 func 带有一个整数参数表示分片的索引值,因此在类型为 T 的 RDD 上运行时,func 的函数类型必须是(Int, Interator[T]) => Iterator[U]
sample(withReplacement, fraction, seed) 根据 fraction 指定的比例对数据进行采样,可以选择是否使用随机数进行替换,seed 用于指定随机数生成器种子
union(otherDataset) 对源 RDD 和参数 RDD 求并集后返回一个新的 RDD
intersection(otherDataset) 对源 RDD 和参数 RDD 求交集后返回一个新的 RDD
distinct([numTasks])) 对源 RDD 进行去重后返回一个新的 RDD
groupByKey([numTasks]) 在一个(K,V)的 RDD 上调用,返回一个(K, Iterator[V])的 RDD
reduceByKey(func, [numTasks]) 在一个(K,V)的 RDD 上调用,返回一个(K,V)的 RDD,使用指定的 reduce 函数,将相同 key 的值聚合到一起,与 groupByKey 类似,reduce 任务的个数可以通过第二个可选的参数来设置
aggregateByKey(zeroValue)(seqOp, combOp, [numTasks]) 对 PairRDD 中相同的 Key 值进行聚合操作,在聚合过程中同样使用了一个中立的初始值。和 aggregate 函数类似,aggregateByKey 返回值的类型不需要和 RDD 中 value 的类型一致
sortByKey([ascending], [numTasks]) 在一个(K,V)的 RDD 上调用,K 必须实现 Ordered 接口,返回一个按照 key 进行排序的(K,V)的 RDD
sortBy(func,[ascending], [numTasks]) 与 sortByKey 类似,但是更灵活
join(otherDataset, [numTasks]) 在类型为(K,V)和(K,W)的 RDD 上调用,返回一个相同 key 对应的所有元素对在一起的(K,(V,W))的 RDD
cogroup(otherDataset, [numTasks]) 在类型为(K,V)和(K,W)的 RDD 上调用,返回一个(K,(Iterable,Iterable))类型的 RDD
cartesian(otherDataset) 笛卡尔积
pipe(command, [envVars]) 对 rdd 进行管道操作
coalesce(numPartitions) 减少 RDD 的分区数到指定值。在过滤大量数据之后,可以执行此操作
repartition(numPartitions) 重新给 RDD 分区
————————————————
版权声明:本文为CSDN博主「Python_chichi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Javachichi/article/details/131871627

标签:返回,2024.1,函数,16,日报,RDD,func,一个,numTasks
From: https://www.cnblogs.com/Arkiya/p/17968503

相关文章

  • Solution Set【2024.1.16】
    A.硬币首先根据周长最大的要求不难发现我们实际上要求的是\(n^2+1\)的最小质因子,记作\(f_n\),通过观察可以发现若对于个\(t\),满足存在\(p\)使得\[p\midt^2+1\]那么对于所有\(k\ge0\),一定有\[p\mid\left(t+k\cdotp\right)^2+1\]因此我们可以维护一个序......
  • 2024-01-16-recall
    想起一些非常久的事情Subtitle:2024-01-16recallCreated:2024-01-16T18:52+08:00Published:2024-01-16T20:08+08:00Categories:EssayTags:Diary可能是看书的影响,也可能是前天被我妈嘱咐要吃好点(至于为什么是前天,检查日历和身份证),也可能是看了某公众号的文章,晚上(凌晨)醒......
  • 16_Java基础-包
    包机制包=文件夹语法格式:packagepkg1[.pkg2[.pkg3…]];一般利用公司域名倒置作为包名:com.baidu.www域名:www.baidu.com为了能够使用一个包的成员,需要在Java中导入该包,用“import”完成importpackge1*(通配符):导入这个包下所有的类!推荐《阿里巴巴开发......
  • P6667 [清华集训2016] 如何优雅地求和
    P6667[清华集训2016]如何优雅地求和Problem给定最高次幂为\(x^{m}\)的多项式函数\(g(x)\)和整数\(n,q\),其中\(g\)以点值形式给出,即给定\(g(0),g(1),\dots,g(m)\)。求:\[\begin{aligned}Q(g,n,q)=\sum\limits_{k=0}^{n}g(k)\binom{n}{k}q^{k}(1-q)^{n-k......
  • 1.16学习进度
    sparkde四大特点   速度快:比hadoop的mapreduce快100倍;spark处理数据时,可以将中间处理结果存储到内存中;spark提供了非常丰富分算子,可以做到复杂任务在一个spark程序中完成   易于使用   通用性强:spark提供了sparksql、sparkstreaming、mlib及graphx在内的多个工具库......
  • 2024/1/16 数据仓库dwd层
    DWD层,以业务过程为建模驱动,基于每个具体业务过程的特点,构建最细粒度的明细层事实表。事实表可做适当的宽表化处理。 时间用户地区商品优惠券活动度量值订单√√√   运费/优惠金额/原始金额/最终金额订单详情√......
  • 1.16每日总结
    数字(Number)类型python中数字有四种类型:整数、布尔型、浮点数和复数。int (整数),如1,只有一种整数类型int,表示为长整型,没有python2中的Long。bool (布尔),如True。float (浮点数),如1.23、3E-2complex (复数),如1+2j、1.1+2.2j字符串(String)Py......
  • P1638 逛画展
    原题链接反思,debug不出来就赶紧看题解把!题解双指针,双指针有好几种,这个是像弹簧(窗口)一样的双指针,右指针一直往右走,当成立时,左指针一直往左走直到不成立code#include<bits/stdc++.h>usingnamespacestd;inta[1000006]={0};intmain(){ios::sync_with_stdio(false);......
  • Windows 2016 2019 显示桌面图标
    运行cmd窗口输入命令rundll32.exeshell32.dll,Control_RunDLLdesk.cpl,,0弹出桌面图标设置窗口作者:VipSoft......
  • ARC162F
    %赛场切了!矩阵是不太好处理的,所以考虑从一行去推下一行。设上一行选择了\(p_1,p_2,\cdots,p_k\)这几个横坐标的位置为\(1\),分情况讨论一下这一行选择的\(x\)位置。(下列结合自己画图理解)\(x\gep_1\)。首先发现如果选择一个\(x\not\inp\),则一定不满足条件。然后也可......