分享

相同句子计数

lanxueren121 发表于 2015-12-4 17:33:18 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 6183
大神们,教授让我把wordcount改写成相同句子计数···大神们能给我点儿思路吗···毫无头绪···



已有(2)人评论

跳转到指定楼层
nextuser 发表于 2015-12-4 19:08:30

原理是一样的,关键是分隔符。
word count是先一行一行分割,然后对行分割,行分割标准比如按照逗号,空格等

对于句子,map读取一行之后,在按照标准划分句子,比如逗号,句号等


上面其实存在一个缺点,如果一个句子被分到两行就产生了误差,所以楼主还需要重写
inputformat,这样让他读取整个句子。

需要一定的Java功底,否则需要下点功夫了

回复

使用道具 举报

nextuser 发表于 2015-12-4 19:10:27
还有一个折中的办法,就是使用系统自带的。

############################################
按行划分MAP,即实现输入文件按行划分,每N行一个MAP
//设置JOB的格式化输入类为NLineInputFormat
job.setInputFormatClass(NLineInputFormat.class)

注释:

//设置每N行为一个MAP,当然,这个数据最好使用计算的方法去得出,因为不然输入一个大文件会导致MAP很大,会导致占用整个集群资源,如限制最多只能占用N个MAP,当计算出来的MAP大于最大能占用MAP时,以最大可占用MAP数平分其行数

job.getConfiguration().set(NLineInputFormat.LINES_PER_MAP,"500");

##########################################################

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条