Я пытаюсь реализовать симуляцию искрового потокового приложения. Сначала я читаю все пакеты, а затем добавляю их InputDStream в другом формате. После 90 итераций я прочитал более 5 ГБ данных, но только 14,4 МБ в хранилище: https://ibb.co/GHGsTLW что может вызвать эту проблему?
Размер данных составляет всего 75 МБ.
Это причина, по которой у меня возникают накладные расходы от сборщика мусора?
val inputData: mutable.Queue[RDD[DBSCANPoint]] = mutable.Queue()
val inputStream: InputDStream[DBSCANPoint] = ssc.queueStream(inputData)
for (i <- 0 to total_batches + 1) {
val inputRDD = ssc.sparkContext.textFile(inputPath + "/batch" + i + ".txt", this.cores)
.map(line => line.split(' '))
.map(line => DBSCANPoint(Vectors.dense(GlobalVariables.newPointId(), line(0).toDouble, line(1).toDouble))).cache()
inputData.enqueue(inputRDD)
}
inputStream.foreachRDD(rdd => {
//rdd computation
})