文档章节

评论管家系统

海上明月共潮生
 海上明月共潮生
发布于 2017/07/03 20:02
字数 277
阅读 7
收藏 0

package com.movie.step;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map.Entry;

import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;

import com.movie.arith.SortHashMap;
/**
 * 
 * @author yourkkc
 *  filter  qu diao unuser yong de dianying
 */


public class ScoreFilter {

    //input collect
    public static class TheMapper extends Mapper<Object, Text, Text, Text>{
                private String path;
                private static final Text k = new Text();
                private static final Text v = new Text();
            @Override
            protected void map(Object key, Text value, Mapper<Object, Text, Text, Text>.Context context)
                    throws IOException, InterruptedException {
                
                FileSplit inputSplit = (FileSplit) context.getInputSplit();
                path = inputSplit.getPath().getParent().getName();
                String type  ="";
                if(path.equals("step4_Out")){//plus to  the result of matrix to multiply 
                    type ="W:";
                }else if(path.equals("step42_Out")){//src    
                    type ="S:";
                }
                Text k = new Text(key.toString());
                Text v =  new Text(type+value.toString());
                context.write(k,v);
            }
        
    }
    public static class TheReduce extends Reducer<Text,Text,Text,Text>{

        
        @Override
        protected void reduce(Text key, Iterable<Text> values,
                Reducer<Text, Text, Text, Text>.Context context) throws IOException, InterruptedException {
            
            
            HashMap<String,String> wMap = new HashMap<String,String>();
            HashMap<String,String> sMap = new HashMap<String,String>();
            for(Text value:values){
                String v = value.toString().substring(2);
                if (value.toString().startsWith("W:")) {//W
                    wMap.put(v.split(":")[0], v.split(":")[1]);
                }else if (value.toString().startsWith("S:")){//  S
                    sMap.put(v.split(":")[0], v.split(":")[1]);
                }
                
            }
            //过滤
            HashMap<String,Float> filterMap = new HashMap<String,Float>();
            Iterator<String> iter = wMap.keySet().iterator();
            while(iter.hasNext()){
                String k = iter.next();//item
                if(!sMap.containsKey(k))
                    filterMap.put(k, Float.valueOf(wMap.get(k)));
            }
            //排序
            List<Entry<String,Float>> list = new LinkedList<Entry<String,Float>>();
            list=SortHashMap.sortHashMap(filterMap);
            for(Entry<String,Float> l : list){
                Text k = new Text(key);
                Text v = new Text(l.getKey().toString() + "\t" + l.getValue().toString());
                context.write(k,v);
            }
        }
        
    }
    
}
 

© 著作权归作者所有

共有 人打赏支持
海上明月共潮生
粉丝 0
博文 4
码字总数 1130
作品 0
绥化
文档管家--docmaster

文档管家是基于 python + web.py开发的轻量文本在线发布工具,主要用于发布工具帮助文档、教程等内容。 主要功能: 后台内容管理、支持markdown语法、代码高亮、支持分项目管理文档、支持jqu...

114638571
2014/01/15
2.8K
0
腾讯:360安全卫士刻意阻挠QQ电脑管家

腾讯今天发布公告称,360安全卫士存在刻意阻挠QQ电脑管家正常运行的行为,且沟通无果,建议用户不要使用。 腾讯称近日接到大量用户反馈,在运行360安全卫士的电脑上使用QQ电脑管家时,会出现...

红薯
2012/01/06
5.1K
82
如何彻底屏蔽禁止安装QQ管家,不经用户同意,是否可以起诉腾讯

Windows系统,每次更新QQ或者微信的客户端的时候,都会偷偷的静默安装QQ管家,如何彻底屏蔽掉安装QQ管家的可能性? 另外,是否能以一个企业的角度,对腾讯发起起诉? 第一,QQ管家未经用户同...

曾建凯
2016/12/17
858
5
消息称腾讯成立团队研发杀毒

据消息人士透露,腾讯已经在内部成立杀毒软件研发项目团队,对杀毒方面进行研发。另有消息称该杀毒软件已经进入测试期,有望在近期推出。这意味着其与360之间或将引发更大的对抗。 数月前坊间...

鉴客
2010/11/02
1K
25

没有更多内容

加载失败,请刷新页面

加载更多

MySQL面试题集锦

什么是数据库索引?索引有哪几种类型?什么是最左前缀原则?索引算法有哪些?有什么区别? 索引是对数据库表中一列或多列的值进行排序的一种结构。一个非常恰当的比喻就是书的目录页与书的正...

老道士
22分钟前
0
0
使用 LogStash 归集日志

elastic 官网: https://www.elastic.co/ 为了便于集中查看多台主机的业务日志,使用 Filebeat, Redis, Logstash的方式进行收集: (1) Filebeat 监控日志文件的变化, 将新增部分写入redis中, 每...

ouhoo
25分钟前
0
0
java序列化(六) - protostuff序列化

添加依赖 <dependency> <groupId>io.protostuff</groupId> <artifactId>protostuff-core</artifactId> <version>1.5.9</version> </de......

晨猫
31分钟前
0
0
Ceph学习笔记1-Mimic版本多节点部署

特别说明: 本方法也可以用于单节点部署,只部署一个Monitor(只是会形成单点故障而已),最低要求是使用两个分区创建2个OSD(因为默认最小副本是2);如果不需要使用CephFS,则可以不部署M...

LastRitter
34分钟前
0
0
923. 3Sum With Multiplicity - LeetCode

Question 923. 3Sum With Multiplicity Solution 题目大意: 给一个int数组A和一个目标值target,求满足下面两个条件的组合个数,其中i,j,k分别为数组的索引 i<j<k target = A[i] + A[j] + A[k...

yysue
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部