Я новичок в теме потоковой передачи.Таким образом, возникает проблема при расчете различного числа в столбце в наборе данных / кадре данных.
// DataFrame
val readFromKafka = sparksession.readStream.format("kafka").option("kafka.bootstrap.servers", bootstrapServer).option("subscribe", topic).option("failOnDataLoss", "false").load()
// Набор данных [(String, Timestamp)]
val selected_readFromKafka = inPutStreamData.selectExpr("CAST(value AS STRING)", "CAST(timestamp AS TIMESTAMP)").as[(String, Timestamp)]
// Набор данных [(Int, Int, String, Timestamp)]
val final_Data = selected_readFromKafka.map(f => {
val no1 = f._1.split('|').apply(0).toInt
val no2 = f._1.split('|').apply(1).toInt
val data = f._1.split('|').apply(2)
(no1, no2, data, f._2)
})
Так как же мы можем рассчитать различное число в столбцах № 1, № 2 final_Data
.
val count = final_Data...... ?
Используйте count переменную на карте ниже.
val selected_readFromKafka_Next = selected_readFromKafka.map(f => {
KafkaOutputResponse(
count,
"","",f.data
)
})
selected_readFromKafka_Next.writeStream.format("console").option("truncate", "false").start().awaitTermination()
Заранее спасибо.