MapReduce Объединяет не выводит правильный результат - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь реализовать объединение в MapReduce между двумя разными файлами.Оба файла содержат детали транзакций биткойнов.Первый файл содержит следующие поля:
hash, value, n, publickey
Второй файл, к которому я тоже хочу присоединиться, имеет следующие поля:
txid, tx_hash, vout.
Я хочу выполнитьсоединение репликации между полем хеш-функции из первого файла и полем txid из второго файла.Эти два поля ссылаются на одно и то же значение, поэтому объединение должно найти транзакции во втором файле, на которые также ссылаются в первом файле.Вот код, который я написал до сих пор:

from mrjob.job import MRJob
from mrjob.step import MRStep

class repl_stock_join(MRJob):

    sector_table = {}

    def mapper_join_init(self):
        with open("filtertemp.csv") as f:
            for line in f:
                fields = line.split(',')
                key = fields[0]
                val = "hash"
                self.sector_table[key] = val

    def mapper_repl_join(self, _, line):
        try:
            fields = line.split(',')
            txid = fields[0]
            if txid in self.sector_table:
                print(txid)
                yield(txid, None)
        except:
            pass

    def steps(self):
        return [MRStep(mapper_init=self.mapper_join_init, mapper=self.mapper_repl_join)]

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

Однако при запуске этого кода ничего не возвращается, кроме пустого текстового файла, который не должен иметь место.Любая помощь, чтобы исправить это приветствуется.

...