2016-10-23 3 views
0

Я новичок в scala и spark-graphx. Это метод, который я написал, чтобы извлечь вершину, которая имеет значение мин оценкаGraphX-Spark: error graph.vertices.filter

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} 

Любые идеи ?? Спасибо

+0

Используйте 'case' правильно. 'case (_, _, _, s: Score, _) => s NaHeon

+0

Всегда та же ошибка – imen

+0

Моя ошибка. Я пишу ответ ниже – NaHeon

ответ

0

В благодарность я допустил ошибку, считая, что Score - тип. В большинстве случаев, если вы выполняете сопоставление с образцом, безопасно использовать строчные буквы. (lowercased variables in pattern matching)

val filterResult = graph.vertices.filter { 
    case (_, (_, _, _, score, _)) => score < minValue 
} 

Это не даст ошибку компиляции.

Еще одна вещь: filter - это неправильный выбор для выбора минимального выбора. Он просто отфильтрует VertexRDD, который имеет меньше, чем minValue, и вернет список.

+0

Спасибо за ваш ответ. Всегда одна и та же ошибка компиляции. – imen

+0

Предполагаемое несоответствие типа (graphx.VertexId, (Int, Float, Float, Float, String)) => Логический, фактический: (graphx.VertexId, (Int, Float, Float, Float, String)) => Любой – imen

+0

@imen Мой рабочий лист чист. Это на 'filterResult'? – NaHeon

 Смежные вопросы

  • Нет связанных вопросов^_^