更新時(shí)間:2023-07-12 來(lái)源:黑馬程序員 瀏覽量:
在main()方法中,首先使用filter()算子過(guò)濾aggregationRDD每一行數(shù)據(jù)中行為類型為加入購(gòu)物車和購(gòu)買的數(shù)據(jù),只保留行為類型為查看的數(shù)據(jù),然后使用mapToPair()算子對(duì)過(guò)濾結(jié)果進(jìn)行轉(zhuǎn)換,獲取每一行數(shù)據(jù)中品類被查看次數(shù)和品類ID數(shù)據(jù),最終將轉(zhuǎn)換結(jié)果加載到getViewCategoryRDD.具體代碼如下。
JavaPairRDD<String, Integer> getViewCategoryRDD=aggregationRDD .filter (new Function<Tuple2<Tuple2<String, String>, Integer> , Boolean> () { @override public Boolean call(Tuple2<Tuple2<String;String> , Integer> tuple2) throws Exception { //獲取行為類型 String action =tuple2._1._2; return action.equals("view"); } }).mapToPair( new PairFunction<Tuple2<Tuple2<String, String> , Integer>, String, Integer>() { @override public Tuple2<String, Integer> call(Tuple2<Tuple2<String, String>, Integer> tuple2) throws Exception { return new Tuple2<> (tuple2._1._1:tuple2 ._2): } });
上述代碼中,第9行通過(guò)equals()方法判斷獲取的行為類型是否為view(查看)并將判斷城果作為返回值,若返回值為True則進(jìn)行后續(xù)轉(zhuǎn)換操作。
在main()方法中,首先使用filter()算子過(guò)濾aggregationRDD每一行數(shù)據(jù)中行為類型為查看和購(gòu)買的數(shù)據(jù),只保留行為類型為加入購(gòu)物車的數(shù)據(jù),然后使用mapToPair()算子對(duì)過(guò)濾結(jié)果進(jìn)行轉(zhuǎn)換,獲取每一行數(shù)據(jù)中品類被加入購(gòu)物車次數(shù)和品類ID數(shù)據(jù),最終將轉(zhuǎn)換結(jié)果加載到getCartCategoryRDD,具體代碼如下。
JavaPairRDD<String,Integer> getCartCategoryRDD =aggregationRDD .filter (new Function<Tuple2<Tuple2<String, String>, Integer> , Boolean>() { @override public Boolean call(Tuple2<Tuple2<String, String> , Integer> tuple2) throws Exception { String action =tuple2._1._2: return action.equals("cart"): } }).mapToPair(new PairFunction<Tuple2<Tuple2<String, String> ,Integer>,String,Integer>(){ @oerride public Tuple2<String, Integer> call (Tuple2<Tuple2<String, String>, Integer> tuple2) throws Exception { return new Tuple2<> (tuple2._1._1,tuple2._2); } }):
上述代碼中,第9行通過(guò)equals()方法判斷獲取的行為類型是否為view(查看)并將判斷城果作為返回值,若返回值為True則進(jìn)行后續(xù)轉(zhuǎn)換操作。
在main()方法中,首先使用filter()算子過(guò)濾aggregationRDD每一行數(shù)據(jù)中行為類型為查看和購(gòu)買的數(shù)據(jù),只保留行為類型為加入購(gòu)物車的數(shù)據(jù),然后使用mapToPair()算子對(duì)過(guò)濾結(jié)果進(jìn)行轉(zhuǎn)換,獲取每一行數(shù)據(jù)中品類被加入購(gòu)物車次數(shù)和品類ID數(shù)據(jù),最終將轉(zhuǎn)換結(jié)果加載到getCartCategoryRDD,具體代碼如下。
JavaPairRDD<String,Integer> getCartCategoryRDD =aggregationRDD .filter(new Function<Tuple2<Tuple2<String, String>, Integer> , Boolean>() { @override public Boolean call(Tuple2<Tuple2<String, String> , Integer> tuple2) throws Exception { String action =tuple2._1._2: return action.equals("cart"): } }).mapToPair(new PairFunction<Tuple2<Tuple2<String, String> ,Integer>,String,Integer>(){ @oerride public Tuple2<String, Integer> call (Tuple2<Tuple2<String, String>, Integer> tuple2) throws Exception { return new Tuple2<> (tuple2._1._1,tuple2._2); } });
上述代碼中,第8行通過(guò)equals()方法判斷獲取的行為類型是否為cart(加入購(gòu)物車)并將判斷結(jié)果作為返回值,若返回值為True則進(jìn)行后續(xù)轉(zhuǎn)換操作。
使用filter()算子過(guò)濾aggregationRDD每一行數(shù)據(jù)中行為類型為查看和加入購(gòu)物車的數(shù)據(jù),只保留行為類型為購(gòu)買的數(shù)據(jù),然后使用apToPair()算子對(duì)過(guò)濾結(jié)果進(jìn)行轉(zhuǎn)換,獲取每一行數(shù)據(jù)中品類被購(gòu)買次數(shù)和品類ID數(shù)據(jù),最終將轉(zhuǎn)換結(jié)果加載到getPurchaseCategoryRDD,具體代碼如下。
上述代碼中,第8行通過(guò)equals()方法判斷獲取的行為類型是否為purchase(購(gòu)買)并將判斷結(jié)果作為返回值,若返回值為True則進(jìn)行后續(xù)轉(zhuǎn)換操作。