Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要使用python-MapReduce计算特定目录中的文档数_Python_Python 3.x_Mapreduce_Mrjob - Fatal编程技术网

需要使用python-MapReduce计算特定目录中的文档数

需要使用python-MapReduce计算特定目录中的文档数,python,python-3.x,mapreduce,mrjob,Python,Python 3.x,Mapreduce,Mrjob,请找到我正在使用的以下程序。它正在编译,但没有给出任何输出。请求帮助解决错误 import gzip import warc import os from mrjob.job import MRJob class DocumentCounter(MRJob): def mapper(self, _, line): entries = os.listdir("C://Users//HP//WARCDataset") for entry in entrie

请找到我正在使用的以下程序。它正在编译,但没有给出任何输出。请求帮助解决错误

import gzip
import warc
import os
from mrjob.job import MRJob


class DocumentCounter(MRJob):
    def mapper(self, _, line):
        entries = os.listdir("C://Users//HP//WARCDataset")
        for entry in entries:
            yield 1,1

    def reducer(self, key, values):

        yield key, sum(values)

if __name__ == '__main__':
     DocumentCounter.run() 
IDE和输出窗口的屏幕截图。即使程序运行成功,结果也不会显示

class DocumentCounter(MRJob):
   
    def mapper_raw(self,_,line):
        for fname in os.listdir(WARC_PATH):
            yield "total_documents",1

    def combiner(self, key, values):
    """
    Sums up count for each mapper.
    """
        yield key, sum(values)
                

    def reducer(self, key, values):
    ##TOTAL_DOUCMENTS = sum(values)
        NumberofDocuments = sum(values)     
        yield key, NumberofDocuments


       
    if __name__ == '__main__':
         DocumentCounter.run()

上面的代码使用os.listdir函数迭代给定路径上的所有文件

我不确定代码有什么问题,但您真的需要一个类来计算文档数吗?您可以通过:
b=len([x代表os.listdir(文件夹)中的x,如果x.endswith(文件扩展名)])
@pavel:正如您所说,可以使用Python内部函数来实现,但她想使用MapReduce算法,所以她需要一个类。@NachiketDeo:您的代码似乎是正确的。你能展示一下你是如何从终端运行代码的吗?@codrelphi谢谢你的评论。我通过按下“Run”按钮在Enthound-CorporationIDE的本地机器上运行代码。我没有使用任何命令来运行该文件。请告诉我是否有任何命令可用于运行。@NachiketDeo您的输出应位于作业输出所在行或最终输出所在行旁边的文件夹中。您可以检查这些文件夹。这是您问题的解决方案还是应该是问题的一部分?最近在我看来,这是解决问题的办法。当给定目录正确路径时,此代码提供对该特定目录中文档数量的回答