Как записать в разные файлы на основе контента для пакетной обработки во Flink?

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

footer {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 1rem;
  background-color: #efefef;
  text-align: center;
}
0
задан iamabug 19 March 2019 в 23:33
поделиться

1 ответ

Мы столкнулись с той же проблемой. Мы также удивлены тем, что DataSet не поддерживает addSink().

Я рекомендую не переключаться в режим потоковой передачи. Вы можете отказаться от некоторых оптимизаций (т. Е. Пулов памяти), доступных в пакетном режиме.

Возможно, вам придется реализовать свой собственный OutputFormat , чтобы выполнить группирование.

Вместо этого вы можете расширить OutputFormat[YOUR_RECORD] (или RichOutputFormat[]), где вы все еще можете использовать BucketAssigner[YOUR_RECORD, String] для открытия / записи / закрытия выходных потоков.

Это то, что мы сделали, и это прекрасно работает.

Я надеюсь, что Flink скоро поддержит это в пакетном режиме.

0
ответ дан Bon Speedy 19 March 2019 в 23:33
поделиться