У меня есть луч / scio Pipeline с этим кодом:
// Save result as text files under the output path
val filesP: PCollection[KV[Void, String]] = decryptedRows.internal
.apply({
FileIO
.write()
.via(TextIO.sink())
.withNaming(
Write.defaultNaming(output, StaticValueProvider.of[String](".csv"))
)
.withTempDirectory(output)
.withIgnoreWindowing()
.withEmptyGlobalWindowDestination(null)
})
.getPerDestinationOutputFilenames
И иногда PCollection decryptedRows пуст. Но я все равно хочу сохранить файл.
Проблема в том, что документация по лучу рекомендует не использовать его: https://beam.apache.org/releases/javadoc/2.4.0/org/apache/beam/sdk/io/FileIO.Write.html
withIgnoreWindowing () Устаревшее. Избегайте использования этого метода: его эффекты сложны, и он будет удален в будущих версиях Beam. Сейчас он существует для совместимости с WriteFiles.
Спасибо.