Scala 如何在Spark中运行代码后对结果进行排序
我创建了一些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
(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:)