我正在编写一个应用程序,使用结构化流媒体将消息从Kafka读入Spark。
传入消息是字符串格式的与贸易相关的FIX消息。它们被转换为Java POJO。
以下示例代码:
SparkSession spark = createSparkSession();
// Subscribe to 1 topic
Dataset<Row> df = spark
.readStream()
.format("kafka")
.option("kafka.bootstrap.servers", brokers)
.option("subscribe", topics)
.load();
df.as(Encoders.STRING()).map(new MapFunction<String, OrderData>() {
@Override
public OrderData call(String arg0) throws Exception {
// TODO Auto-generated method stub
return OrderData(arg0);
}
}, Encoders.bean(OrderData.class));
我的问题是,如何在DataSet的内存中保存最后n条记录,以便我可以在该DataSet之上支持Spark SQL?
答案 0 :(得分:0)
想出这样的事情会起作用:
。 dataset.writeStream()格式(&#34;存储器&#34)。queryName(&#34; orderdataDS&#34)
。开始(); enter code here