Несколько входов с MRJob

Я пытаюсь научиться использовать Python API Yelp для MapReduce, MRJob. Их простой пример со счетчиком слов имеет смысл, но мне любопытно, как можно было бы обрабатывать приложение с несколькими входами. Например, вместо того, чтобы просто считать слова в документе, умножая вектор на матрицу. Я пришел с этим решением, которое работает, но чувствует себя глупо:

class MatrixVectMultiplyTast(MRJob):
    def multiply(self,key,line):
            line = map(float,line.split(" "))
            v,col = line[-1],line[:-1]

            for i in xrange(len(col)):
                    yield i,col[i]*v

    def sum(self,i,occurrences):
            yield i,sum(occurrences)

    def steps(self):
            return [self.mr (self.multiply,self.sum),]

if __name__=="__main__":
    MatrixVectMultiplyTast.run()

Этот код запускается./matrix.py < input.txt и причина того, что это работает, состоит в том, что матрица хранится в input.txt по столбцам с соответствующим значением вектора в конце строки.

Итак, следующая матрица и вектор:

представлены как input.txt как:

Короче говоря, как бы я мог более естественно хранить матрицу и вектор в отдельных файлах и передавать их в MRJob?

Ответы на вопрос(4)

Ваш ответ на вопрос