Выходной файл паркетного файла - Spark Структурированная потоковая передача - PullRequest
1 голос
/ 27 марта 2019

Интересно, что (и как изменить) вызывает Spur Sturctured Streaming Query (с настроенным выходным приемником Parquet File) для записи данных в файлы Parquet.Я периодически передаю входные данные Stream (используя StreamReader для чтения в файлах), но он не записывает выходные данные в файл Parquet для каждого файла, предоставляемого в качестве входных данных.После того, как я дал ему несколько файлов, он, как правило, прекрасно пишет файл Parquet.

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

Примечание: у меня maxFilesPerTrigger установлен в 1 при вызове Read Stream.Я также вижу, как потоковый запрос обрабатывает один входной файл, однако один входной файл не приводит к записи потокового запроса в файл Parquet

1 Ответ

1 голос
/ 29 марта 2019

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

После повторного чтения https://spark.apache.org/docs/2.2.1/structured-streaming-programming-guide.html#starting-streaming-queries Похоже, что при использовании режима добавления с набором водяных знаков структурированное парообразование Spark не будет записывать результаты агрегирования в таблицу результатов до тех пор, пока не истечет лимит времени для водяного знака. Режим добавления не позволяет обновлять записи, поэтому он должен ждать, пока водяные знаки не пройдут, чтобы гарантировать отсутствие изменения строки ...

Я полагаю - приемник файла Parquet не поддерживает режим обновления, однако после переключения на выходной приемник ForEach и использования режима обновления я наблюдал, как данные поступают в приемник, как и ожидалось. По существу для каждой записи, по крайней мере, для одной записи без задержки (как это наблюдалось ранее).

Надеюсь, это поможет другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...