Apache Flink Потоковая передача файлов из каталога - PullRequest
0 голосов
/ 25 апреля 2018

Я хочу загрузить кучу CSV-файлов в Apache Flink в указанном порядке, например, как определено схемой именования в именах файлов, которая может содержать некоторую информацию о временной отметке.

В Apache Spark я могу передавать файлы в набор данных, как только они перемещаются в определенный каталог (например, / data / staging) с атомарным перемещением файла следующим образом

Dataset<Row> fileStreamDf = spark.readStream()
            .option("header", true)
            .schema(schema)
            .csv("/data/staging")

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

Как мне добиться того же с помощью Apache Flink?

1 Ответ

0 голосов
/ 25 апреля 2018

Это не совсем тот же вариант использования, но нам пришлось сделать что-то похожее в потоковой работе (файлы HDF5, а не CSV). Поэтому я написал RichSourceFunction, который знает, как перебирать файлы в правильном порядке, и отправляет пути к файлам (они в S3) в виде записей String. Затем нижестоящий FlatMapFunction анализирует файл и выдает фактические строки.

...