Задание Google Dataflow не удалось из-за ошибки недостаточно загруженных данных

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

Мне нужно сделать много TextIO в качестве источника и записать в пункт назначения как отдельный поток. Фрагмент кода примера выглядит так:

List<PCollection<String>> pcs = new ArrayList<>();
for(int i = 0; i < 2000; i++) {
        pcs.add(p.apply(TextIO.Read.from("gs://wushilin-asia/some-folder/input-" + i + "/*")));
}

for(int i = 0; i < 2000; i++) {
        pcs.get(i).apply(TextIO.Write.to("gs://wushilin-asia/some-folder/output-" + i + "/"));
}
p.run();

Это не выполняется тихо (кажется, что зависает навсегда) с ошибкой «недостаточно данных загружено» в бэкэнде.

Что здесь не так?


person Wu Shilin    schedule 25.04.2017    source источник
comment
Оказалось, что структура потока данных слишком сложна, и хранилище метаданных задания потока данных не может с ней справиться. Снижение количества компонентов решило эту проблему.   -  person Wu Shilin    schedule 30.05.2017


Ответы (1)


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

person Wu Shilin    schedule 30.05.2017