[英]Use Spark structured streaming with StreamingKMeans
我想要使用 Spark 對流式數據集進行聚類。 我首先嘗試使用 Kmeans,但它在調用 fit 方法時拋出運行時異常,表示它不能與流數據一起使用:
org.apache.spark.sql.AnalysisException: Queries with streaming sources must be executed with writeStream.start();
然后我嘗試使用 StreamingKmeans,但它接縫這個 model 僅適用於 Spark 中的舊流媒體並接受 DStream。 有誰知道這個問題的解決方法或其他解決方案?
到目前為止我寫的代碼如下:
Dataset<Row> df = spark.readStream()
.format("kafka")
.option("kafka.bootstrap.servers", "localhost:9092")
.option("subscribe", topic)
.load()
.selectExpr("CAST(value AS String)")
.select(functions.from_json(new Column("value"), schema).as("data"))
.select("data.*");
VectorAssembler assembler = new VectorAssembler()
.setInputCols(features)
.setOutputCol("features");
df = assembler.transform(df);
StreamingKMeans kmeans = new StreamingKMeans().setK(3).setDecayFactor(1.0);
StreamingKMeansModel model = kmeans.predictOn(df);
無法解析方法'predictOn(org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>)
最后我發現這是不可能的,所以我切換到 DStream 而不是 Structured Streaming
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.