spark算子算pv、uv

rdd
.filter(
line=>{
(line.split("\t")(1).startsWith(“2_”) && line.split("\t")(3).split(",").length > 0)
}
)
.map(
line =>{
val value = line.split("\t")
val pv = Integer.valueOf(value(4))
(value(1) + “\t” + value(2) + “,” + “\t” + value(0), pv)
}
)
.reduceByKey((x, y) =>{
val pv = x + y
pv
}
.map(line => {
val value_1 = line._1.split("\t")
val pv = line._2
(value_1(0) + “\t” + value_1(1), pv)
})
.mapValues(pv => (pv, 1))
.reduceByKey((x, y) => {
(x._1 + y._1, x._2 + y._2)
})
.map(line => {
//sid os,sv, pv,uv
line._1 + “\t” + line._2._1 + “,” + line._2._2
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值