繁体   English   中英

Java Kafka结构化流

[英]Java Kafka Structured Streaming

我必须通过 Spark 从 Kafka 执行批量查询(基本上是在一个循环中),每次都从上一次迭代中读取的最后一个偏移量开始,以便我只读取新数据。

Dataset<Row> df = spark
                .read()
                .format("kafka")
                .option("kafka.bootstrap.servers", "localhost:9092")
                .option("subscribe", "test-reader")
                .option("enable.auto.commit", true)
                .option("kafka.group.id", "demo-reader") //not sure about the one to use
                .option("group.id", "demo-reader")
                .option("startingOffset", "latest")
                .load()

批处理查询似乎不支持latest 我想知道是否有可能以另一种方式做类似的事情(不直接处理偏移量)。

编辑: earliest似乎检索到主题中包含的全部数据。

您可以尝试earliest而不是latest作为startingOffsets ,如下例所示:

Dataset<Row> df = spark
  .read()
  .format("kafka")
  .option("kafka.bootstrap.servers", "localhost:9092")
  .option("subscribe", "test-reader")
  .option("enable.auto.commit", true)
  .option("kafka.group.id", "demo-reader") //not sure about the one to use
  .option("group.id", "demo-reader")
  .option("startingOffsets", "earliest")
  .option("endingOffsets", "latest")
  .load();

请参考火花文档

根据文档,您应该使用“最新”进行流式传输,使用“最早”进行批处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM