93.Spark大型电商项目-页面单跳转化率-计算页面流起始页面的pv

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/someby/article/details/88925077

目录

代码

PageOneStepConvertRateSpark.java


本篇文章记录页面单跳转化率-计算页面流起始页面的pv。

代码

PageOneStepConvertRateSpark.java

 /**
     * 获取页面流中初始页面的pv
     * @param taskParam
     * @param sessionid2actionsRDD
     * @return
     */

    private static long getStartPagePv(JSONObject taskParam, JavaPairRDD<String,Iterable<Row>> sessionid2actionsRDD){

        String targetPageFlow = ParamUtils.getParam(taskParam,Constants.PARAM_TARGET_PAGE_FLOW);
        final long startPageid = Long.valueOf(targetPageFlow.split(",")[0]);
        JavaRDD<Long> startPageRDD = sessionid2actionsRDD.flatMap(
                new FlatMapFunction<Tuple2<String, Iterable<Row>>, Long>() {
                    private static final long serialVersionUID = 1L;
                    @Override
                    public Iterator<Long> call(Tuple2<String, Iterable<Row>> tuple) throws Exception {
                        List<Long> list = new ArrayList<Long>();
                        Iterator<Row> iterator = tuple._2.iterator();
                        while (iterator.hasNext()){
                            Row row = iterator.next();
                            long pageid = row.getLong(3);
                            if (pageid == startPageid){
                                list.add(pageid);
                            }
                        }
                        return list.iterator();
                    }
                }
        );
        return startPageRDD.count();
    }

猜你喜欢

转载自blog.csdn.net/someby/article/details/88925077