streming调试

链接:https://www.oschina.net/question/2861327_2244973

0
清风444 2017/06/13 22:01
你可以在本地模拟MR的过程,比如以经典的wordcount为例:

cat ~/data/words.txt | python word_count_mapper.py | sort | python word_count_reducer.py | sort -nr -k 2 |head -n 10
顺便给你贴一下py代码

#!/usr/bin/env python
#-- coding=utf8 --

import sys,re

re_english = re.compile(u’[^a-zA-Z0-9-]+’)

for line in sys.stdin: #这里你可以看做是map类中的line输入
words = re_english.sub(’ ',line.strip()) #这里只提取英文数字
for word in words.split():
print ‘%s\t%s’ % (word, 1) #这儿就是标准的输出,用tab隔开 默认第一个值为key
word_count_mapper.py

!/usr/bin/env python
#-- coding=utf8 --

import sys

lastk = None #这里标志最后一个k 用于控制同一个key 到一个组中
count = 0

for line in sys.stdin:
w,c = line.split(’\t’)
c = int© #不转成int会比较麻烦 这是是计数
if lastk == None: #这里是判断是否过来的是第一个key
lastk=w
count += c
elif lastk == w:
count += c
else:
print “%s\t%s”%(lastk,count)
lastk=w
count = c #这里重置计数

if lastk is not None:
print “%s\t%s”%(lastk,count)
word_count_reducer.py

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值