У меня есть список слов как DStream. Например: Список (автомобиль, скорость, авария, скорость, плохо). Я хочу сформировать bi грамм из этого списка. У меня это с RDD, но с проблемами с DStreams. Я использую функцию foreachRDD. Ниже приведено то, что у меня есть -Обработка списка в DStream
Я пытаюсь распечатать содержимое RDD после преобразования.
def printRDD(rddString: RDD[String]) ={
val z = rddString.map(y => y.toString.split(",").filter(_.nonEmpty).
map(y => y.replaceAll("""\W""", "").toLowerCase)
.filter(_.nonEmpty)
.sliding(2).filter(_.size == 2).map{ case Array(a, b) => ((a, b), 1) })
.flatMap(x => x)
println(z)
}
val x = lines.map(plainTextToLemmas(_, stopWords))
val words = x.flatMap(y=> y.toString.split(","))
words.foreachRDD(rdd => printRDD(rdd))
Есть ли способ показать содержимое после функции преобразования printRDD. Даже если я использую println (z) внутри определения печати, он возвращает MapPartitionsRDD [18] в flatMap. Я использую искрообразование Kafka для чтения входов, я получаю значение слова на консоли. Я думаю, что слова не меняются после вызова функции printRDD.
Что должно произойти с битрамами после обработки потока? Эта функция просто делает консольную печать. – maasg