Задание 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();
Это происходит молча (кажется, навсегда) с ошибкой "недостаточно загруженных данных" в серверной части.
Что здесь не так?
1 ответ
Оказалось, что структура потока данных слишком сложна, и хранилище метаданных задания потока данных не может с этим справиться. Сокращение до меньшего количества компонентов решило эту проблему