使用Octo模块的mapreduce wordcount示例

时间:2013-04-20 05:09:10

标签: python mapreduce

我刚开始用Octo模块学习mapreduce,并带有单词计数示例。我试着计算dir hw3data中的单词(如下所述)。我的电脑既是服务器又是客户端。

我开始使用带有2个终端的Windows cmd

server:octo.py server wordcount.py 似乎服务器端启动没有问题

客户端:octo.py客户端localhost 似乎python找不到我存储在hw3data目录中的txt文件,所以它说没有工作,睡觉。那么任何人都可以提供帮助吗?

wordcount.py代码位于

之下

wordcount.py

服务器

import glob

text_files=glob.glob('C:/Python27/octopy-0.1/hw3data/*.txt')

def file_contents(file_name):
    f=open(file_name)
    try:
        return f.read()
    finally:
        f.close()

source=dict((file_name,file_contents(file_name)) for file_name in text_files)

f=open('outfile','w')
def final(key,value):
    print key,value
    f.write(str((key,value)))

的客户端

def mapfn(key,value):

      for line in value.splitlines():

          for word in line.split():

               yield word.lower(),1

def reducefn(key,value):

       return key,len(value)

2 个答案:

答案 0 :(得分:1)

验证您的数据文件名称中是否包含“.txt”。我目前正在解决这个问题到我的作业#3。祝你好运!

答案 1 :(得分:0)

更改以下代码

text_files=glob.glob('C:/Python27/octopy-0.1/hw3data/*.txt')

text_files=glob.glob('C:/Python27/octopy-0.1/hw3data/*')

然后试试。我猜文件夹中的文件没有扩展名。