Java 通过Spark Streaming从Kafka broker中的特定主题分区读取数据
我是新来为提出这样的问题而道歉的。我有一个用例,在这个用例中,我希望借助Spark流从主题的特定分区读取数据。我正在使用Spark Java API来完成所有工作 我创建了一个名为test的主题,其中包含复制因子2和5分区。希望在spark streaming Kafka integration guide的帮助下,我能够完成创建JavaStreamingContext对象、创建到Kafka broker的直接流以及读取所有分区中的所有消息等所有工作Java 通过Spark Streaming从Kafka broker中的特定主题分区读取数据,java,apache-spark,spark-streaming,Java,Apache Spark,Spark Streaming,我是新来为提出这样的问题而道歉的。我有一个用例,在这个用例中,我希望借助Spark流从主题的特定分区读取数据。我正在使用Spark Java API来完成所有工作 我创建了一个名为test的主题,其中包含复制因子2和5分区。希望在spark streaming Kafka integration guide的帮助下,我能够完成创建JavaStreamingContext对象、创建到Kafka broker的直接流以及读取所有分区中的所有消息等所有工作 但我的用例仍然没有实现,我必须在Kafka
但我的用例仍然没有实现,我必须在Kafka broker中只读取主题的特定分区的消息,而不是所有分区的所有消息 您应该能够使用以下代码从特定偏移量读取特定分区
Map<TopicAndPartition, Long> consumerOffsets = new HashMap<TopicAndPartition, Long>();
TopicAndPartition p1 = new TopicAndPartition("yourtopic","yourpartition");
consumerOffsets.put(p1,offset);
JavaInputDStream<String> messages = KafkaUtils.createDirectStream(
jssc,
String.class,
String.class,
StringDecoder.class,
StringDecoder.class,
String.class,
kafkaParams,
consumerOffsetsLong,
new Function<MessageAndMetadata<String, String>, String>() {
public String call(MessageAndMetadata<String, String> msgAndMeta) throws Exception {
return msgAndMeta.message();
}
}
);
Map consumerofsets=newhashmap();
TopicAndPartition p1=新的TopicAndPartition(“您的主题”、“您的分区”);
消费函数集put(p1,偏移量);
JavaInputDStream消息=KafkaUtils.createDirectStream(
jssc,
String.class,
String.class,
StringDecoder.class,
StringDecoder.class,
String.class,
卡夫卡帕拉姆斯,
消费主义者,
新函数(){
公共字符串调用(MessageAndMetadata msgAndMeta)引发异常{
返回msgAndMeta.message();
}
}
);