linux_oracle 发表于 2020-12-4 15:54:07

Spark算子总结2

二. TransformationTransformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理。Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算。2.1  RDD基本操作转换2.1.1 map算子将一个RDD中的每个数据项,通过map中的函数映射变为一个新的元素。输入分区与输出分区一对一,即:有多少个输入分区,就有多少个输出分区。
2.1.2 flatmap算子<div style="text-indent: 0em;"><span style="color: rgb(194, 143, 91); font-size: 12pt;">1. </span><span style="color: rgb(194, 143, 91); font-size: 8pt;">/</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">/ </span><span style="color: rgb(194, 143, 91); font-size: 8pt;"><font face="Consolas">使用</font>flatMap算子</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">2. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">> </span><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span><span style="color: rgb(194, 143, 91); font-size: 8pt;"> </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">flatmapresult </span><span style="color: rgb(194, 143, 91); font-size: 8pt;">= </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">data.flatMap</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">line</span><span style="color: rgb(194, 143, 91); font-size: 8pt;"> => </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">line.split</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">("\\s+"))</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(194, 143, 91); font-size: 12pt;">3. </span><span style="color: rgb(194, 143, 91); font-size: 8pt;">flatmapresult: org.apache.spark.rdd.RDD = MapPartitionsRDD at flatMap at :23</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(194, 143, 91); font-size: 12pt;">4. </span><span style="color: rgb(194, 143, 91); font-size: 8pt;">/</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">/运算</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">flagMap</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">算子结果</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">5. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> flatmapresult</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">collect</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">6. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">hello</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> world</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hello</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hello</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hive</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div>使用flatMap时候需要注意:flatMap会将字符串看成是一个字符数组看下面的例子:<b style="background-color: rgb(255, 255, 255);"><span style="font-family: 微软雅黑; color: rgb(255, 192, 0); letter-spacing: 0pt; font-size: 9pt; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;"><font face="微软雅黑">案例区别</font>1</span></b>2. res32: Array = Array(HELLO WORLD, HELLO SPARK, HELLO HIVE, HI SPARK)
3.
4. scala> data.flatMap(_.toUpperCase).collect
5. res33: Array = Array(H, E, L, L, O, , W, O, R, L, D, H, E, L, L, O, , S, P, A, R, K, H, E, L, L, O, , H, I, V, E, H, I, , S, P, A, R, K)

再看:<b style="background-color: rgb(255, 255, 255);"><span style="font-family: 微软雅黑; color: rgb(255, 192, 0); letter-spacing: 0pt; font-size: 9pt; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;"><font face="微软雅黑">案例区别2</font></span></b>2. res34: Array] = Array(Array(hello, world), Array(hello, spark), Array(hello, hive), Array(hi, spark))
3.
4. scala> data.flatMap(x => x.split("\\s+")).collect
5. res35: Array = Array(hello, world, hello, spark, hello, hive, hi, spark)

总:flatMap只会将String扁平化成字符数组,并不会把Array也扁平化成字符数组,
在案例区别1中,flatmap返回的是String,案例区别2中flatmap返回的是Array

2.1.3 mapPartitions算子
def mapPartitions(f: (Iterator) => Iterator, preservesPartitioning: Boolean = false)(implicit arg0: ClassTag): RDD该函数和map函数类似,只不过映射函数的参数由RDD中的每一个元素变成了RDD中每一个分区的迭代器。如果在映射的过程中需要频繁创建额外的对象,使用mapPartitions要比map高效。 比如,将RDD中的所有数据通过JDBC连接写入数据库,如果使用map函数,可能要为每一个元素都创建一个connection,这样开销很大,如果使用mapPartitions,那么只需要针对每一个分区建立一个connection。
<div style="text-indent: 0em;"><span style="color: rgb(249, 38, 89); font-size: 12pt;">1. </span><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1 </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> sc</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">makeRDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">1</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> to </span><span style="color: rgb(204, 0, 204); font-size: 8pt;">5</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(102, 102, 102); font-size: 12pt;">2. </span><span style="color: rgb(102, 102, 102); font-size: 8pt;">//rdd1有两个分区</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">3. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd3 </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><b><span style="color: rgb(0, 0, 255); font-size: 8pt;">mapPartitions</span></b><span style="color: rgb(0, 170, 0); font-size: 8pt;">{</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> x </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">{</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 170, 0); font-size: 12pt;">4. </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">|</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> result </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">List()</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 170, 0); font-size: 12pt;">5. </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">|</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> i </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(204, 0, 204); font-size: 8pt;">0</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 170, 0); font-size: 12pt;">6. </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">|</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(249, 38, 89); font-size: 8pt;">while</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">x</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">hasNext</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">){</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 170, 0); font-size: 12pt;">7. </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">|</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> i </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">+=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> x</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(249, 38, 89); font-size: 8pt;">next</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">()</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 170, 0); font-size: 12pt;">8. </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">|</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">}</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 170, 0); font-size: 12pt;">9. </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">|</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> result</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.::(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">i</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">).</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">iterator</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 170, 0); font-size: 12pt;">10. </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">|</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">}}</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">11. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd3</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> org</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">apache</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">RDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;"></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">MapPartitionsRDD[</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">84</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">]</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> at mapPartitions at </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">23</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">12. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(102, 102, 102); font-size: 12pt;">13. </span><span style="color: rgb(102, 102, 102); font-size: 8pt;">//rdd3将rdd1中每个分区中的数值累加</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">14. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd3</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">collect</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">15. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res65</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array(</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">3</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(204, 0, 204); font-size: 8pt;">12</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">16. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd3</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">partitions</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">size</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">17. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res66</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Int</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(204, 0, 204); font-size: 8pt;">2</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div>
2.1.4 distinct算子对RDD中的元素进行去重操作。<div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">1. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> data</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">flatMap</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">line </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> line</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">split</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">"\\s+"</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)).</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">collect</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">2. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res61</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">hello</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> world</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hello</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hello</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hive</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hi</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">3. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">4. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> data</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">flatMap</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">line </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> line</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">split</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">"\\s+"</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)).</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">distinct</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">collect</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">5. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res62</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">hive</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hello</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> world</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hi</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div>2.1.5 coalesce算子def coalesce(numPartitions: Int, shuffle: Boolean = false)(implicit ord: Ordering = null): RDD
该函数用于将RDD进行重分区,使用HashPartitioner。
第一个参数为重分区的数目,第二个为是否进行shuffle,默认为false;<div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">1. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> data </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> sc</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">textFile</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">"/tmp/lxw1234/1.txt"</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">2. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">data</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> org</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">apache</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">RDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;"></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">MapPartitionsRDD[</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">53</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">]</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> at textFile at </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">21</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">3. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> data</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">collect</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">4. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res37</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">hello world</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hello spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hello hive</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> hi spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">5. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> data</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">partitions</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">size</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">6. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res38</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Int</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(204, 0, 204); font-size: 8pt;">2</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(102, 102, 102); font-size: 8pt;">//RDD data默认有两个分区</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">7. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><b><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span></b><b><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1 </span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span></b><b><span style="color: rgb(0, 0, 255); font-size: 8pt;"> data</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span></b><b><span style="color: rgb(0, 0, 255); font-size: 8pt;">coalesce</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span></b><b><span style="color: rgb(204, 0, 204); font-size: 8pt;">1</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span></b><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">8. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> org</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">apache</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">RDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;"></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">CoalescedRDD[</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">]</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> at coalesce at </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">23</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">9. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">partitions</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">size</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">10. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Int</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(204, 0, 204); font-size: 8pt;">1</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(102, 102, 102); font-size: 8pt;">//rdd1的分区数为1</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">11. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><b><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span></b><b><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1 </span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span></b><b><span style="color: rgb(0, 0, 255); font-size: 8pt;"> data</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span></b><b><span style="color: rgb(0, 0, 255); font-size: 8pt;">coalesce</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span></b><b><span style="color: rgb(204, 0, 204); font-size: 8pt;">4</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span></b><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">12. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> org</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">apache</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">RDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;"></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">CoalescedRDD[</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">3</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">]</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> at coalesce at </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">23</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">13. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">partitions</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">size</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">14. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Int</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(204, 0, 204); font-size: 8pt;">2</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(102, 102, 102); font-size: 8pt;">//如果重分区的数目大于原来的分区数,那么必须指定shuffle参数为true,//否则,分区数不便</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">15. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><b><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span></b><b><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1 </span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span></b><b><span style="color: rgb(0, 0, 255); font-size: 8pt;"> data</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span></b><b><span style="color: rgb(0, 0, 255); font-size: 8pt;">coalesce</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span></b><b><span style="color: rgb(204, 0, 204); font-size: 8pt;">4</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span></b><b><span style="color: rgb(249, 38, 89); font-size: 8pt;">true</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span></b><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">16. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> org</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">apache</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">RDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;"></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">MapPartitionsRDD[</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">7</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">]</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> at coalesce at </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">23</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">17. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">partitions</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">size</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">18. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res3</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Int</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(204, 0, 204); font-size: 8pt;">4</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div>2.1.6 union算子该函数比较简单,就是将两个RDD进行合并,不去重
2.1.7 zip算子def zip(other: RDD)(implicit arg0: ClassTag): RDD[(T, U)]
zip函数用于将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同,否则会抛出异常。
<div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">1. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1 </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> sc</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">makeRDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">1</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> to </span><span style="color: rgb(204, 0, 204); font-size: 8pt;">5</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">2. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> org</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">apache</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">RDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;"></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">ParallelCollectionRDD[</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">]</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> at makeRDD at </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">21</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">3. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">4. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd2 </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> sc</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">makeRDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(Seq(</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">"A"</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">"B"</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">"C"</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">"D"</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">"E"</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">),</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">5. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> org</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">apache</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">RDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;"></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">ParallelCollectionRDD[</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">]</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> at makeRDD at </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">21</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">6. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">7. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">zip</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">).</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">collect</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">8. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res0</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array[(Int,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">String)]</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array((</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">A</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">),</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">B</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">),</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">3</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">C</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">),</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">4</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">D</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">),</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">5</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">E</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">))</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">9. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">10. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">zip</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">).</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">collect</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">11. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">res1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array[(String,</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Int)]</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Array((</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">A</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">),</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">B</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">2</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">),</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">C</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">3</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">),</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">D</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">4</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">),</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">E</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">5</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">))</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">12. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">13. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(249, 38, 89); font-size: 8pt;">var</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd3 </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><b><span style="color: rgb(0, 0, 255); font-size: 8pt;">sc</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span></b><b><span style="color: rgb(0, 0, 255); font-size: 8pt;">makeRDD</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">(Seq(</span></b><b><span style="color: rgb(194, 143, 91); font-size: 8pt;">"A"</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span></b><b><span style="color: rgb(194, 143, 91); font-size: 8pt;">"B"</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span></b><b><span style="color: rgb(194, 143, 91); font-size: 8pt;">"C"</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span></b><b><span style="color: rgb(194, 143, 91); font-size: 8pt;">"D"</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">,</span></b><b><span style="color: rgb(194, 143, 91); font-size: 8pt;">"E"</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">),</span></b><b><span style="color: rgb(204, 0, 204); font-size: 8pt;">3</span></b><b><span style="color: rgb(0, 170, 0); font-size: 8pt;">)</span></b><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">14. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd3</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> org</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">apache</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">spark</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">RDD</span><span style="color: rgb(0, 170, 0); font-size: 8pt;"></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">=</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">ParallelCollectionRDD[</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">5</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">]</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> at makeRDD at </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">:</span><span style="color: rgb(204, 0, 204); font-size: 8pt;">21</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">15. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">16. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">scala</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">></span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> rdd1</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">zip</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">(</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">rdd3</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">).</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">collect</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(0, 0, 255); font-size: 12pt;">17. </span><span style="color: rgb(0, 0, 255); font-size: 8pt;">java</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.</span><span style="color: rgb(0, 0, 255); font-size: 8pt;">lang</span><span style="color: rgb(0, 170, 0); font-size: 8pt;">.IllegalArgumentException:</span><span style="color: rgb(0, 0, 255); font-size: 8pt;"> </span><span style="color: rgb(0, 170, 0); font-size: 8pt;">Can</span><span style="color: rgb(194, 143, 91); font-size: 8pt;">'t zip RDDs with unequal numbers of partitions</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div><div style="text-indent: 0em;"><span style="color: rgb(194, 143, 91); font-size: 12pt;">18. </span><span style="color: rgb(194, 143, 91); font-size: 8pt;">//如果两个RDD分区数不同,则抛出异常</span><span style="color: rgb(190, 190, 197); font-size: 10.5pt;"></span></div>


页: [1]
查看完整版本: Spark算子总结2