【发布时间】:2023-03-03 23:50:01
【问题描述】:
我有一个DataSet[Row],其中每一行都是 JSON 字符串。我只想打印 JSON 流或计算每批的 JSON 流。
这是我目前的代码
val ds = sparkSession.readStream()
.format("kafka")
.option("kafka.bootstrap.servers",bootstrapServers"))
.option("subscribe", topicName)
.option("checkpointLocation", hdfsCheckPointDir)
.load();
val ds1 = ds.select(from_json(col("value").cast("string"), schema) as 'payload)
val ds2 = ds1.select($"payload.info")
val query = ds2.writeStream.outputMode("append").queryName("table").format("memory").start()
query.awaitTermination()
select * from table; -- don't see anything and there are no errors. However when I run my Kafka consumer separately (independent ofSpark I can see the data)
我的问题真的是我需要做什么才能使用结构化流打印从 Kafka 接收的数据? Kafka 中的消息是 JSON 编码的字符串,因此我将 JSON 编码的字符串转换为某种结构,并最终转换为数据集。我正在使用 Spark 2.1.0
【问题讨论】:
-
您是否也在 Spark 用户邮件列表(与 TD)上讨论它?试图找出这两个用例的不同之处。
-
嗨!是的,但我们还没有结束转换。我只是想使用结构化流打印数据,但我很难做到:(
-
我也试过
val query = ds.writeStream.outputMode("append").format("console").start(),但也没有用
标签: apache-spark apache-spark-sql spark-structured-streaming