Spark算子:RDD基本转换操作(7)–zipWithIndex、zipWithUniqueId
来源:互联网 发布:长尾理论 知乎 编辑:程序博客网 时间:2024/05/19 13:22
关键字:Spark算子、Spark RDD基本转换、zipWithIndex、zipWithUniqueId
zipWithIndex
def zipWithIndex(): RDD[(T, Long)]
该函数将RDD中的元素和这个元素在RDD中的ID(索引号)组合成键/值对。
- scala> var rdd2 = sc.makeRDD(Seq("A","B","R","D","F"),2)
- rdd2: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[34] at makeRDD at :21
- scala> rdd2.zipWithIndex().collect
- res27: Array[(String, Long)] = Array((A,0), (B,1), (R,2), (D,3), (F,4))
zipWithUniqueId
def zipWithUniqueId(): RDD[(T, Long)]
该函数将RDD中元素和一个唯一ID组合成键/值对,该唯一ID生成算法如下:
每个分区中第一个元素的唯一ID值为:该分区索引号,
每个分区中第N个元素的唯一ID值为:(前一个元素的唯一ID值) + (该RDD总的分区数)
看下面的例子:
- scala> var rdd1 = sc.makeRDD(Seq("A","B","C","D","E","F"),2)
- rdd1: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[44] at makeRDD at :21
- //rdd1有两个分区,
- scala> rdd1.zipWithUniqueId().collect
- res32: Array[(String, Long)] = Array((A,0), (B,2), (C,4), (D,1), (E,3), (F,5))
- //总分区数为2
- //第一个分区第一个元素ID为0,第二个分区第一个元素ID为1
- //第一个分区第二个元素ID为0+2=2,第一个分区第三个元素ID为2+2=4
- //第二个分区第二个元素ID为1+2=3,第二个分区第三个元素ID为3+2=5
更多关于Spark算子的介绍,可参考spark算子系列文章:
http://blog.csdn.net/ljp812184246/article/details/53895299
0 0
- Spark算子:RDD基本转换操作(7)–zipWithIndex、zipWithUniqueId
- Spark算子:RDD基本转换操作(7)–zipWithIndex、zipWithUniqueId
- Spark算子:RDD基本转换操作(7)–zipWithIndex、zipWithUniqueId
- RDD基本转换操作(7)–zipWithIndex、zipWithUniqueId
- 3.2 Spark RDD 基本转换操作6-zip、zipPartitions 、zipWithIndex、zipWithUniqueId
- Spark编程之基本的RDD算子之zip,zipPartitions,zipWithIndex,zipWithUniqueId
- Spark算子:RDD基本转换操作(5)–mapPartitions、
- Spark算子:RDD基本转换操作(2)–coalesce、repartition
- Spark算子:RDD基本转换操作(6)–zip、zipPartitions
- Spark算子:RDD基本转换操作(5)–mapPartitions、mapPartitionsWithIndex
- Spark算子:RDD基本转换操作(6)–zip、zipPartitions
- Spark算子:RDD基本转换操作(5)–mapPartitions、mapPartitionsWithIndex
- Spark算子:RDD基本转换操作(3)–randomSplit、glom
- Spark算子:RDD基本转换操作(2)–coalesce、repartition
- Spark算子:RDD基本转换操作(5)–mapPartitions/mapPartitionsWithIndex
- Spark算子:RDD基本转换操作(2)–coalesce、repartition
- Spark算子:RDD基本转换操作(3)–randomSplit、glom
- Spark算子:RDD基本转换操作(2)–coalesce、repartition
- Android TV ViewPager翻页控制
- Android 源码分析之基于Stagefright的MediaPlayer播放框架[3]
- 集合和数组的区别
- sql中设置字段的显示个数
- varchar与char 的区别
- Spark算子:RDD基本转换操作(7)–zipWithIndex、zipWithUniqueId
- Java之封装
- HTTP中的URL长度限制
- bootstrap的模态弹窗 和CKEditor的模态弹窗冲突问题解决
- java实现 排序算法之直接插入排序
- sass安装和webStrom编辑器(win7)
- x64 PL/SQL 连接 Oralce 提示 Could not initialize oci.dll
- ddos和cc攻击的区别,防护!!
- php 配置xdebug