我是斯卡拉和星火图的新手。这是我编写的一种方法,用于提取具有最小得分值的顶点
def getMinScoreVertex(graph: Graph[(Int,Float,Float,Float,String),Float]):Float={
var minValue:Float=Float.PositiveInfinity
var LowestScoreValue=graph.vertices.filter { case (id,(_,_,_,Score,_)) => Score < minValue}
return LowestScoreValue }我得到以下错误:
Error:(15, 62) constructor cannot be instantiated to expected type;
found : (T1, T2, T3, T4, T5)
required: (org.apache.spark.graphx.VertexId, (Int, Float, Float, Float, String))
(which expands to) (Long, (Int, Float, Float, Float, String))
var LowestScoreValue=graph.vertices.filter { case (_,_,_,Score,_) => Score < minValue}
Error:(15, 69) not found: value Score
var LowestScoreValue=graph.vertices.filter { case (_,_,_,Score,_) => Score < minValue}
Error:(15, 82) not found: value Score
var LowestScoreValue=graph.vertices.filter { case (_,_,_,Score,_) => Score < minValue}有什么主意吗?谢谢
发布于 2016-10-23 12:45:56
在表扬时我犯了一个错误,思考得分就是打字。大多数情况下,如果您进行模式匹配,使用小写字母是安全的.(lowercased variables in pattern matching)
val filterResult = graph.vertices.filter {
case (_, (_, _, _, score, _)) => score < minValue
}这不会产生编译错误。
还有一件事是,filter不是选择最小选项的正确选择。它只过滤VertexRDD,它的分数小于minValue,并返回列表。
https://stackoverflow.com/questions/40200299
复制相似问题