У меня есть список (не статичный), в котором хранятся ключи для потоковой передачи данных.Я хочу разделить эти ключи для исполнителей, чтобы предотвратить дублирование, но не смог найти правильный способ сделать это.
Список:
List<String> keyList = Arrays.asList("key1", "key2", "key3", "key4", "key5");
У меня три исполнителя на стороне искры зависит от количества разделовпо теме кафка.Поток начинается с foreachPartition, как показано ниже, и я хочу разделить элементы списка по разделам.
Я имею в виду, я хочу обработать данные по ключу (key1, key2) в первом разделе.key3 для второго и key4 и key5 для третьего раздела.
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...**
}
}
Есть ли способ сделать это?