Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 星火图索引排序-排序方式与排序方式_Scala_Apache Spark_Spark Graphx - Fatal编程技术网

Scala 星火图索引排序-排序方式与排序方式

Scala 星火图索引排序-排序方式与排序方式,scala,apache-spark,spark-graphx,Scala,Apache Spark,Spark Graphx,我正在尝试根据火花图中的度数对顶点列表进行排序(使用Scala) //升序排序-下面的两个结果相同 gGraph.inDegrees.collect.sortBy(u.u 2)。take(10) 图.索引.收集.排序(u.\u 2\uu.\u2).获取(10) gGraph.inDegrees.collect.sortBy(u._2,升序=false)。take(10)//不起作用!! 我希望sortBy(u.\u 2,升序=false)的结果与上述sortWith(u.\u 2>u.\u 2

我正在尝试根据火花图中的度数对顶点列表进行排序(使用Scala)

//升序排序-下面的两个结果相同
gGraph.inDegrees.collect.sortBy(u.u 2)。take(10)
图.索引.收集.排序(u.\u 2\uu.\u2).获取(10)
gGraph.inDegrees.collect.sortBy(u._2,升序=false)。take(10)//不起作用!!
我希望
sortBy(u.\u 2,升序=false)
的结果与上述
sortWith(u.\u 2>u.\u 2)
的结果相同。但是得到下面的错误。感谢你对这件事的任何想法。谢谢

scala>gGraph.inDegrees.collect.sortBy(u.2,升序=false)。take(10) :55:错误:方法sortBy的参数太多:(f: ((org.apache.spark.graphx.VertexId,Int))=>B)(隐式ord: scala.math.Ordering[B])数组[(org.apache.spark.graphx.VertexId,Int] gGraph.inDegrees.collect.sortBy(._2,升序=false)。取(10)


由于您首先执行
.collect
,因此您是在
数组上调用
.sortBy
,而不是在
RDD上调用
Array
sortBy
方法只接受一个参数(不能指定
升序

您通常应该让spark处理尽可能多的计算,并且只在最后进行
收集
(或
获取
)。试试这个:

gGraph.inDegrees.sortBy(_._2, ascending=false).take(10)

是的,它起作用了。谢谢scala>gGraph.inDegrees.sortBy(u._2,升序=false)。获取(10)res122:Array[(org.apache.spark.graphx.VertexId,Int)]=Array((10397152),(13930145),(11298143),(11292132),(12266107),(13487,96),(12892,82),(11618,82),(11433,81),(14869,80))
gGraph.inDegrees.sortBy(_._2, ascending=false).take(10)