为什么火花sql流的“平均”值首次触发为空?
dataset.first()
观察到的一点是,火花结构化流将使用空数据触发第一批数据,这是因为合计值变为空。为什么会这样?
下面是示例Java代码:
public static void main(String[] args) throws Exception {
SparkSession spark = SparkSession.builder().appName("TestAggNull").config("spark.master", "local[2]")
.config("spark.driver.bindAddress", "127.0.0.1")
.config("spark.sql.shuffle.partitions", 1).getOrCreate();
Dataset<Row> ds = spark.readStream()
.format("kafka")
.option("kafka.bootstrap.servers", "localhost:9092")
.option("subscribe", "sampleTopic")
.load().selectExpr("CAST(value AS STRING)");
ds = ds.select(functions.avg(functions.col("value")));
ds.writeStream()
.format("console")
.outputMode("update").start();
spark.streams().awaitAnyTermination();
}