#apache-spark #spark-streaming #databricks
#apache-spark #искровая передача #databricks
Вопрос:
Я получаю данные в одной дельта-таблице, и я хочу, чтобы два потребителя обрабатывали их чтение:
У меня в разных банках есть эти коды:
1) Процесс Spark для вычисления агрегатов в режиме реального времени.
val df_aggregations = spark.readStream
.format("delta")
.option("ignoreDeletes", "true")
.option("ignoreChanges", "true")
.option("checkpointLocation", configuration.delta_aggregation_checkpoint)
.load(configuration.delta_table)
2) Процесс Spark для получения новых значений в режиме реального времени.
val df_news = spark.readStream
.format("delta")
.option("ignoreDeletes", "true")
.option("ignoreChanges", "true")
.option("checkpointLocation", configuration.delta_news_checkpoint)
.load(configuration.delta_table)
Моя проблема в том, что я просто вижу, что один из процессов работает хорошо, я имею в виду, если я запускаю процесс 1) первым, чем 2) Я вижу хорошие результаты процесса 1), однако я не вижу результатов процесса 2), и если я запускаю процесс 2) сначалазатем я вижу результаты процесса 2), но я не вижу результатов процесса 1).
Ответ №1:
Да, у вас может быть N пользователей, обрабатывающих чтение в одной и той же дельта-таблице, просто вам нужно иметь разные файлы контрольных точек для каждого процесса.