我可以知道Kafka消费者是否可以在何时读取特定记录,直到已知主题分区的偏移。
用例中有我的火花流应用程序中的用例,在这种情况下,我只想阅读错过的数据。我正在存储主题详细信息,即分区和偏移。
有人可以让我知道是否可以在偏移时从主题中阅读这一点。
如果要处理一组消息集,这是通过在火花流中启动和结束偏移来定义的,您可以使用以下代码:
val kafkaParams = Map[String, Object](
"bootstrap.servers" -> "localhost:9092",
"key.deserializer" -> classOf[StringDeserializer],
"value.deserializer" -> classOf[StringDeserializer],
"group.id" -> "groupId"
)
val offsetRanges = Array(
OffsetRange("input", 0, 2, 4) // <-- topic name, partition number, fromOffset, untilOffset
)
val sparkContext: SparkContext = ???
val rdd = KafkaUtils.createRDD(sparkContext, kafkaParams.asJava, offsetRanges, PreferConsistent)
// other proccessing and saving
可以找到有关集成Spark流和Kafka的更多详细信息:https://spark.apache.org/docs/2.4.0/streaming-kafka-0-10-integration.html