我正在使用kafka和spark-streaming为客户服务中心开发队列报告程序。
程序基本上报告客户的实时计数和平均等待时间。但是spark只需要处理当今的数据。我可以使用创建的日期字段过滤数据。但是一件事仍然未知。不再需要我的旧数据(昨天的数据)会发生什么情况。没有删除操作。还在记忆中吗?如何清除不再需要的数据集行?
sparkSession
.readStream()
.format("kafka")
.option("kafka.bootstrap.servers", "192.168.0.201:9092")
.option("subscribe", "ticket")
.load()
.selectExpr("CAST(value AS STRING) as message")
.select(from_json(col("message"), schema).as("t"))
.filter(col("t.created_day").equalTo(current_date()))
.rollup("type")
.agg(
avg("t.waitedDuration"),
count("*")
// more aggreations
)