Вставить элементы списка в потоковое воспроизведение
У меня есть список (не статичный), в котором хранятся ключи для потоковой передачи данных. Я хочу разделить эти ключи с исполнителями, чтобы избежать дублирования, но не смог найти подходящий способ сделать это.
Список:
List<String> keyList = Arrays.asList("key1", "key2", "key3", "key4", "key5");
У меня три исполнителя на стороне искры зависит от количества разделов по теме кафки. Поток начинается с foreachPartition, как показано ниже, и я хочу разделить элементы списка по разделам.
Я хочу обработать данные по ключу (key1, key2) в первом разделе. ключ 3 для второго и ключ 4 и ключ 5 для третьего раздела.
public void consume(JavaInputDStream<ConsumerRecord<String, String>> stream) {
stream.foreachRDD(rdd ->
rdd.foreachPartition(partitionOfRecords -> {
while (partitionOfRecords.hasNext()) {
// streaming....
}
**do processing for some key after streaming...**
}
}
Есть ли способ сделать это?