我是新手,并尝试编写一些基于火花和火花流的示例代码。
到目前为止,我已经在spark中实现了排序功能,这里是代码:
def sort(listSize: Int, slice: Int): Unit = {
val conf = new SparkConf().setAppName(getClass.getName)
val spark = new SparkContext(conf)
val data = genRandom(listSize)
val distData = spark.parallelize(data, slice)
val result = distData.sortBy(x => x, true)
val finalResult = result.collect()
val step5 = System.currentTimeMillis()
printlnArray(finalResult, 0, 10)
spark.stop()
}
/**
* generate random number
* @return
*/
def genRandom(listSize: Int): List[Int] = {
val range = 100000
var listBuffer = new ListBuffer[Int]
val random = new Random()
for (i <- 1 to listSize) listBuffer += random.nextInt(range)
listBuffer.toList
}
def printlnArray(list: Array[Int], start: Int, offset: Int) {
for (i <- start until start + offset) println(">>>>>>>>> list : " + i + " | " + list(i))
}
我在火花流上实现排序功能时遇到了麻烦。据我所知,spark RDD在spark core中提供了排序API,但是火花流中没有这样的API,有谁知道怎么做?感谢
这是一个转储问题,但在谷歌上网后,我找不到正确的答案。如果有人知道如何解决它,谢谢你的帮助。
答案 0 :(得分:4)
您可以利用DStream的transform函数通过使用底层RDD对其进行转换。
例如
myDStream.transform(rdd=>rdd.sortByKey())