我有一个文本文档,其中包含多行tweet,我需要在该文档上运行MapReduce作业。我使用Python和MRJob通过以下代码完成此操作:
from mrjob.job import MRJob
import re
import datetime
class exerciseOne(MRJob):
def mapper(self, _, line):
fields = line.split(";")
epochtemp = int(fields[0])
difference = epochtemp/1000.0
key = datetime.datetime.fromtimestamp(difference).strftime('%Y-%m-%d')
yield(key, 1)
if __name__ == '__main__':
exerciseOne.run()这里包含一个需要分析的文本的小样本:https://textuploader.com/dnx59,如果有人感兴趣的话。
我遇到的问题是,我不知道如何遍历mapper方法中的行来生成所有的键值对。我尝试过以下几种方法:
for line in lines和
while(line)
但对于我正在使用的数据集,这两种方法都不起作用。我怎样才能正确地遍历它们呢?
发布于 2018-10-17 01:17:28
我不熟悉这个库,但我认为你要找的模式是这样的:
实例化类:
line_mapper = exerciseOne()
key_generator = line_mapper.mapper(None, text_blob)其中text_blob是您链接的文本块。然后,您将能够使用for循环遍历key_generator对象
https://stackoverflow.com/questions/52840671
复制相似问题