def kpi_general(baseData: RDD[(String, String, List[Double],String,String)]) = {
baseData.map(tp => (tp._1, tp._3)).reduceByKey((list1, list2) => {
list1.zip(list2).map(tp => tp._1 + tp._2)
}).foreachPartition(partition => {
val jedis = Jpools.getJedis
partition.foreach(tp => {
jedis.hincrBy("A-" + tp._1, "total", tp._2(0).toLong)
jedis.hincrBy("A-" + tp._1, "succ", tp._2(1).toLong)
jedis.hincrByFloat("A-" + tp._1, "money", tp._2(2))
jedis.hincrBy("A-" + tp._1, "cost", tp._2(3).toLong)
//设置key的过期时间
jedis.expire("A-" + tp._1, 60 * 60 * 48)
})
jedis.close()
})
}
list(1,2,3)+(4,5,6)=>reducebykey=(1,2,3),(4,5,6)
使用拉链后
list(1,2,3)+(4,5,6)=>(1,4),(2,5),(3,6)=>(5,7,9)