predictionio优化

predictionio 的validScores方法 有点问题,因为model对象中的一个属性类型为Map items,在数据量很大的时候,肯定是不行,所以优化一下,采用join+filter的模式,代码如下

创新互联专注于桃源网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供桃源营销型网站建设,桃源网站制作、桃源网页设计、桃源网站官网定制、小程序定制开发服务,打造桃源网络公司原创品牌,更为您提供桃源网站排名全网营销落地服务。

return all.mapToPair(new PairFunction() {
            @Override
            public Tuple2 call(ItemScore idUser) throws Exception {
                return new Tuple2<>(idUser.getItemEntityId(), idUser);
            }
        }).join(model.getItems()).filter(new Function>, Boolean>() {
            @Override
            public Boolean call(Tuple2> itemScore) throws Exception {
                /*Item item = items.get(itemScore.getItemEntityId());*/

                Item item =itemScore._2._2;
                //logger.info("join end");

                return (item!=null && /*item != null 
                        && */passWhitelistCriteria(whitelist, itemScore._2._1.getItemEntityId())
                        && passBlacklistCriteria(blacklist, itemScore._2._1.getItemEntityId())
                       /* && passCategoryCriteria(categories, item)*/
                       /* && passUnseenCriteria(seenItemEntityIds, itemScore.getItemEntityId())*///看过或买过的不要
                       /* && passAvailabilityCriteria(unavailableItemEntityIds, itemScore.getItemEntityId())*/);
            }
        }).map(new Function>, ItemScore>() {
             @Override
             public ItemScore call(Tuple2> userItemCount) throws Exception {
                 return userItemCount._2._1;
             }
         });

本文名称:predictionio优化
文章转载:http://bzwzjz.com/article/gijjoc.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 自适应网站建设 温江网站设计 定制级高端网站建设 营销型网站建设 成都网站制作 外贸营销网站建设 成都网站建设公司 成都网站建设 网站建设公司 营销型网站建设 企业网站制作 企业网站建设 成都网站设计公司 成都网站设计 专业网站设计 企业网站设计 重庆手机网站建设 成都网站建设 成都网站设计 网站设计公司 四川成都网站建设 成都网站建设