大数据hadoop系列:python实现MapReduce 词频统计

map代码:map_t.py

import sys
import re

p = re.compile(r'\w+')
for line in sys.stdin:
    ss = line.strip().split(' ')
    for s in ss:
        if len(p.findall(s)) < 1:
            continue
        s_low = p.findall(s)[0].lower()
        print s_low + ',' + '1'

reduce代码:red_t.py

import sys

cur_word = None
sum = 0
for line in sys.stdin:
    word, val = line.strip().split(',')
    if cur_word == None:
        cur_word = word
    if cur_word != word:
        print '%s\t%s' % (cur_word, sum)
        cur_word = word
        sum = 0
    sum += int(val)
print '%s\t%s' % (cur_word, sum)

测试shell:

cat The_Man_of_Property.txt | python map_t.py |sort -k2|python red_t.py

run.sh

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值