Spark Структурированная потоковая передача. Считайте, что Кафка показывает проблему тайм-аута при использовании dropDuplicates.
Время ожидания возникает, когда я использую dropDuplicates.
Настройка следующая,
1) Spark Structured Streaming Program читает данные из Kafka
2) Поскольку мне нужно дедуплицировать строки в соответствии со столбцом с именем id, для решения этой проблемы используется метод dropDuplicates, предоставляемый Spark Structured Streaming. Вот соответствующие коды ниже,
// df is the original dataframe got from kafka
val win_data = df.select($"value" cast "string" as "json")
.select(from_json($"json", schema) as "data")
.select("data.*")
.withWatermark("window", "1 hour")
.dropDuplicates("id", "window")
.drop("id")
На самом деле, этот код может работать в течение нескольких дней. К сожалению, проблема тайм-аута чтения из Kafka определенно может возникнуть. Если я просто отключить строку dropDuplicates, все идет хорошо.
Итак, несколько советов по этому вопросу?
Большое спасибо за вашу помощь.:)