Я пытаюсь использовать Hadoop Streaming для написания функций MapReduce в python3, который использует opencv для обработки изображений, которые являются моими входными данными.Чтобы использовать sys.stdin, я преобразовал все свои изображения в текстовые файлы, используя мой encoder.py, который берет изображение и записывает символьную строку в текстовый файл
import numpy as np
def encoder(imageFilename):
a = cv2.imread(imageFilename)
a = a.astype('str').reshape(row * col * 3)
a = ':'.join(a)
with open('imgText.txt', 'w') as f:
f.write(a)
По сути, я получаю что-то вроде этогомой stdin: 122: 121: 123: 90: 45: 234: и т. д.
Затем я читаю это из своего mapper.py и декодирую, чтобы успешно получить массив 3d-numpy.Но я обеспокоен тем, что при вводе нескольких файлов в качестве входных данных мой картограф для моего второго изображения будет читать оба закодированных изображения в stdin;или Hadoop автоматически сбросит предыдущий стандарт?