我有一个文本文档,上面满是运行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)
,但都不适用于我正在使用的数据集。如何正确遍历这些?
答案 0 :(得分:0)
不熟悉此库,但我认为您正在寻找的模式是这样:
实例化班级
line_mapper = exerciseOne()
key_generator = line_mapper.mapper(None, text_blob)
text_blob
也是您链接的文本块。然后,您可以使用例如for循环遍历key_generator
对象