需求:有一个tuple数组,每个元组四个元素,需求按照 _2 _4 分组,_1 _3拼以 _ 拼接后,组内的再以 | 连接。
sql实现为:
select _2+_4,contact_ws(_1+_3,'|') from t1 group by _2+_4
,
改用RDD算子实现为:
var arrFriend = ArrayBuffer[(String, String, Int, String)]()
sc.parallelize(arrFriend)
.map(ele=>(Md5Util.encrypt16(ele._2)+Md5Util.encrypt16(ele._4),ele._1+"_"+ele._3.toString()))
.reduceByKey((a,b)=>a+"|"+b)