用Python和Shell结合进行词频统计
来源:互联网 发布:轩辕剑腰甲进阶数据 编辑:程序博客网 时间:2024/06/07 17:49
1、示例测试文本
/Users/nisj/PycharmProjects/EsDataProc/word.txt
2、进行数据Map操作的Python
/Users/nisj/PycharmProjects/EsDataProc/wc_mapper.py
3、进行数据Reduce操作的Python
/Users/nisj/PycharmProjects/EsDataProc/wc_reducer.py
4、测试的Shell
/Users/nisj/PycharmProjects/EsDataProc/wc_batch.sh
/Users/nisj/PycharmProjects/EsDataProc/word.txt
foo|-X-|foo|-X-|quux|-X-|iio|-X-|oo|-X-|pp|-X-|pp|-X-|oosee|-X-|you|-X-|you|-X-|again|-X-|welcome|-X-|testtest|-X-|ddd|-X-|gggg|-X-|gggacc|-X-|aaa|-X-|ddddbbb|-X-|ddd|-X-|cccddd|-X-|ccc|-X-|aaawo|-X-|ni|-X-|tawho|-X-|am|-X-|iisds|wew|ww|-X-|kkxcx|-X-|xcxcxcxcxc
2、进行数据Map操作的Python
/Users/nisj/PycharmProjects/EsDataProc/wc_mapper.py
# -*- coding=utf-8 -*-#!/usr/bin/env pythonimport sys# 输入为标准输入stdinfor line in sys.stdin: # 删除开头和结果的空格 line = line.strip() # 以默认空格分隔行单词到words列表 words = line.split('|-X-|') for word in words: # 输出所有单词,格式为“单词,1”以便作为reduce的输入 print '%s\t%s' % (word, 1)
3、进行数据Reduce操作的Python
/Users/nisj/PycharmProjects/EsDataProc/wc_reducer.py
# -*- coding=utf-8 -*-#!/usr/bin/env pythonimport syscurrent_word = Nonecurrent_count = 0word = None#获取标准输入,即mapper.py的输出for line in sys.stdin: line = line.strip() #解析mapper.py输出作为程序的输入,以tab作为分隔符 word,count = line.split('\t',1) #转换count从字符型成整型 try: count = int(count) except ValueError: #非字符时忽略此行 continue #要求mapper.py的输出做排序(sort)操作,以便对连续的word做判断 if current_word == word: current_count +=count else: if current_word: #输出当前word统计结果到标准输出 print '%s\t%s' %(current_word,current_count) current_count =count current_word =word#输出最后一个word统计if current_word ==word: print '%s\t%s' % (current_word,current_count)
4、测试的Shell
/Users/nisj/PycharmProjects/EsDataProc/wc_batch.sh
#!/bin/bashecho "foo foo quux labs foo bar quux" |python ./wc_mapper.pyecho "foo foo quux labs foo bar quux" |python ./wc_mapper.py | sort -k1,1 |python ./wc_reducer.pycat ./word.txt |python ./wc_mapper.py | sort -k1,1 |python ./wc_reducer.py
0 0
- 用Python和Shell结合进行词频统计
- Python进行词频统计
- 用python对一段下载的语料库进行词频统计
- Python使用Hadoop进行词频统计
- Python分词并进行词频统计
- python 文本单词提取和词频统计
- python 统计词频
- python统计汉字词频
- python 统计词频
- python统计文档词频
- Python新闻联播词频统计
- python词频统计
- Python 中的词频统计
- 【python技能】词频统计
- 词频统计python
- 使用python对中文文档进行词频统计
- python进行中文分词、词性标注、词频统计
- python 基于jieba模块进行中文分词词频统计
- CSDN如何转载别人文章
- Android Studio中Git的配置及协同开发
- iOS调用QQ客户端,发起临时会话
- POJ1850——Code
- wsdl使用axis2 1.4.1 生成客户端
- 用Python和Shell结合进行词频统计
- 使用Dagger 2进行依赖注入
- Java性能优化全攻略
- 自定义控件之组合控件
- mysql根据 Y-m-d查询数据库记录
- jQuery 跳转到页面指定元素
- 文章标题
- Spring实现AOP的4种方式
- n个人围成一圈,顺序排号,从第1个人开始报数(1到3报数),凡报到3的人退出圈子,问最后留下的是原来几号