将列表项注入Spark Streaming

时间:2019-02-01 09:10:27

标签: apache-spark spark-streaming spark-streaming-kafka

我有一个列表(非静态),该列表保留用于流数据的密钥。我想将这些密钥拆分给执行者以防止重复,但找​​不到合适的方法。

列表:

List<String> keyList =  Arrays.asList("key1", "key2", "key3", "key4", "key5");

我在火花方面有3位执行者,取决于kafka主题上的分区数。流从如下所示的foreachPartition开始,我想按分区拆分列表项。

我的意思是,我想通过第一个分区上的键(键1,键2)处理数据。 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...**
                }
}

有没有办法做到这一点?

0 个答案:

没有答案