用Python编写WordCount程序任务
程序 |
WordCount |
输入 |
一个包含大量单词的文本文件 |
输出 |
文件中每个单词及其出现次数(频数),并按照单词字母顺序排序,每个单词和其频数占一行,单词和频数之间有间隔 |
- 编写map函数,reduce函数
- 将其权限作出相应修改
- 本机上测试运行代码
- 放到HDFS上运行
- 下载并上传文件到hdfs上
- 用Hadoop Streaming命令提交任务
#!/usr/bin/env python2 import sys for line in sys.stdin: line = line.strip() words = line.split() for word in words: print '%s %s' % (word,1)
#!/usr/bin/env python2 from operator import itemgetter import sys current_word = None current_count= 0 word= None for line in sys.stdin: line = line.strip() word,count=line.split(' /t',1) try: count =int (count) except ValueError: continue if current_word ==word: current_count += count else: if current_word: print (current_word,cureent_count) current_count=count current_word =word if current_word==word: print (current_word,current_count)
设置权限
chomd a+x mapper.py
chomd a+x reducer.py
编写脚本
上传到hdfs