Как обновить файл паркета с помощью Spark Streaming? - PullRequest
0 голосов
/ 03 ноября 2019

Я использую потоковую трансляцию для создания конвейера данных в реальном времени. Я получаю данные в реальном времени от Kafka и обрабатываю эти данные с помощью Spark.

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

Так что это занимает много времени, потому что эта таблица часто обновляется.

Можете ли вы предложить мне лучший подход для выполнения операции обновления в потоковой передаче с искрой?

Заранее спасибо.

1 Ответ

0 голосов
/ 03 ноября 2019

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

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

...