Scala 如何在Spark中运行代码后对结果进行排序

Scala 如何在Spark中运行代码后对结果进行排序,scala,apache-spark,Scala,Apache Spark,我创建了一些scala代码行来计算文本文件中的字数(在Spark中)。结果如下: (further,,1) (Hai,,2) (excluded,1) (V.,5) 我想知道我能否将结果排序如下: (V.,5) (Hai,,2) (excluded,1) (further,,1) 代码如下所示,感谢您的帮助 val wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduc

我创建了一些scala代码行来计算文本文件中的字数(在Spark中)。结果如下:

(further,,1)
(Hai,,2)
(excluded,1)
(V.,5)
我想知道我能否将结果排序如下:

(V.,5)
(Hai,,2)
(excluded,1)
(further,,1)
代码如下所示,感谢您的帮助

val wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
    wordCounts.collect()
    wordCounts.saveAsTextFile("./WordCountTest")

如果要按第二个字段对第一个数据集进行排序,可以使用以下代码:

val wordCounts = Seq(
    ("V.",5),  
    ("Hai",2),
    ("excluded",1),
    ("further",1)
)

val wcOrdered = wordCounts.sortBy(_._2).reverse
这将产生以下结果

wcOrdered: Seq[(String, Int)] = List((V.,5), (Hai,2), (further,1), (excluded,1))

如果要按第二个字段对第一个数据集进行排序,可以使用以下代码:

val wordCounts = Seq(
    ("V.",5),  
    ("Hai",2),
    ("excluded",1),
    ("further",1)
)

val wcOrdered = wordCounts.sortBy(_._2).reverse
这将产生以下结果

wcOrdered: Seq[(String, Int)] = List((V.,5), (Hai,2), (further,1), (excluded,1))

您只需调用
wordCounts.sortBy(\uu.\u 2,false)
。方法sortBy from RDD将boolean作为第二个参数,它告诉我们结果应该按升序(true-default)还是降序(false)排序


您只需调用
wordCounts.sortBy(\uu.\u 2,false)
。方法sortBy from RDD将boolean作为第二个参数,它告诉我们结果应该按升序(true-default)还是降序(false)排序


谢谢你的回答,但我的数据集非常大,我的意思是,我希望我的输出将被排序。我可以在我的代码中编辑或添加什么?我使用变量
wordCounts
根据您发布的内容为您提供了一个示例。如果您需要在其他变量中对数据集进行排序,则应使用
val wcOrdered=datasetYouWantToOrder.sortBy(u._2).reverse
感谢您的回答,但我的数据集非常大,我的意思是,我希望我的输出将被排序。我可以在我的代码中编辑或添加什么?我使用变量
wordCounts
根据您发布的内容为您提供了一个示例。如果需要在其他变量中对数据集进行排序,则应使用
val wcOrdered=datasetYouWantToOrder.sortBy(u._2).reverse
Great to hear:)Great to hear:)