Spark结构化流式传输,保存最新的n条记录以供查询

时间:2017-08-22 07:24:36

标签: apache-spark spark-streaming

我正在编写一个应用程序,使用结构化流媒体将消息从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?

1 个答案:

答案 0 :(得分:0)

想出这样的事情会起作用:

dataset.writeStream()格式(&#34;存储器&#34)。queryName(&#34; orderdataDS&#34) 。开始(); enter code here