1
我将单词列表作为DStream。例如:列表(汽车,速度,事故,速度,坏)。我想从这个列表中形成双克。我有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),它也会在flatMap中返回MapPartitionsRDD [18]。我正在使用Kafka火花流式传输来读取输入,我在控制台上获取单词值。我认为在调用printRDD函数后单词不会改变。
流处理后bigrams会发生什么?该功能仅用于控制台打印。 – maasg