val rdd3 = sc.parallelize(List("12","23","345","4567"),2)字符串
rdd3.aggregate("")((x,y) => math.max(x.length, y.length).toString, (x,y) => x + y)List
兩個分區先計算出字符串的最大長度,而後合成字符串並行
結果多是:」24」,也多是:」42」,體現了並行化特色。d3
val rdd4 = sc.parallelize(List("12","23","345",""),2)字符
rdd4.aggregate("")((x,y) => math.min(x.length, y.length).toString, (x,y) => x + y)d3
結果是:」10」,也多是」01」,math
緣由:注意有個初始值」」,其長度0,而後0.toString變成字符串。值"0".toString的長度爲0,"0".toString.length的長度爲1 。分區可能爲(「12」,「23」)和(「345」,「」);初始值爲"",而後初始值和「12」,「34」比較,或者是""和「345」比較,而後和「」比較。並行化
math.min("".length, "12".length ) 的結果是:0 , math.min("0".length, "23".length ) 的結果是1
math.min("".length, "345".length) 的結果是:0 , math.min("0".length, "".length) 的結果是:0
val rdd5 = sc.parallelize(List("12","23","","345"),2)
rdd5.aggregate("")((x,y) => math.min(x.length, y.length).toString, (x,y) => x + y)
結果是:」11」,緣由以下:
math.min("".length, "12".length ) 的結果是:0 , math.min("0".length, "23".length ) 的結果是:1
math.min("".length, "".length) 的結果是:0 , math.min("0".length, "345".length) 的結果是:1
注意:值"0".toString的長度爲0,"0".toString.length的長度爲1