我有一个来自kafka的简单json格式数据,如下所示:
{"id":"70f9-6dd3-62e0","status":true,"timestamp":1551172970162}
{"id":"70f9-6dd3-62f5","status":true,"timestamp":1551172970333}
{"id":"70f9-6dd3-62e0","status":false,"timestamp":1551172970786}
{"id":"70f9-6dd3-62f5","status":false,"timestamp":1551172971748}
我想按ID,状态对输入数据进行分组,并按组收集时间戳。
这是代码:
Dataset<Row> data = spark
.readStream()
.format("kafka")
.option("kafka.bootstrap.servers", bootstrapServers)
.option(subscribeType, topics)
.option("startingOffsets", "earliest")
.load();
Dataset<Row> json = data.select(from_json(data.col("value").cast("string"), schema));
Dataset<Row> result = json.groupBy(json.col("id"), json.col("status"))
.agg(collect_set("timestamp").alias("timestamps"));
result.writeStream()
.outputMode("complete")
.format("console")
.start();
在控制台上没有任何输出。
我不知道问题是什么。请帮助。