我正在尝试reduce()
功能,所以我尝试了以下内容:
scala> val stringSeq = Seq("The","quick", "brown", "fox")
stringSeq: Seq[String] = List(The, quick, brown, fox)
从中创建一个RDD:
scala> val stringSeqRDD=sc.parallelize(stringSeq)
stringSeqRDD: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[4] at parallelize at <console>:29
连接元素:
scala> stringSeqRDD.reduce((x,y) => (x + " " + y))
res3: String = quick The brown fox
我的问题是如何对我连接的字符串强加一个排序?我是否必须首先转换为PairRDD并根据键进行排序以生成&#34;快速棕色狐狸&#34;结果呢?
答案 0 :(得分:1)
您可以使用foldLeft()
或foldRight()
维护订单。
在您的情况下,foldLeft()
将有效。
stringseq.foldLeft("")((x,y)=>(x+" "+y))