Spark является ленивым, поэтому из кода, который вы вставили выше, не ясно, выполняли ли вы какие-либо действия с JavaRDD (например, collect
или forEach
) и как вы пришли к выводу, что данные не были изменены.
Например, если вы предполагали, что, запустив следующий код:
List<CostedEventMessage> messagesLst = ...;
JavaRDD<CostedEventMessage> rddToKafka = javaSparkContext.parallelize(messagesLst);
rddToKafka = rddToKafka.map(event -> repartitionEvent(event, numPartitions));
Каждый элемент в messagesLst
будет иметь раздел, установленный в 1, вы ошибаетесь.Это будет верно, если вы добавите, например:
messagesLst = rddToKafka.collect();
Для получения более подробной информации см. документация