版权声明:本文为博主原创文章,未经博主允许不得转载。 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(); }