2016-10-29 4 views
0

Я новичок в spark-graphx и scala. Я пишу этот метод, чтобы проверить, изменился ли счет целевой вершины.конструктор не может быть создан для ожидаемого типа; найдено: (T1, T2, T3, T4, T5)

def IsGoalVertexFound(graph: Graph[(VertexId,(Int,Float,Float,Float,String)),Float],goalVertex:(VertexId,(Int,Float,Float,Float))): Boolean ={ 
     var IsgoalFound:Boolean=false 
     var targetVertex=graph.vertices.filter{ case (id,(_,gScore,_,_,_)) => id == goalVertex._1 && gScore!=Float.PositiveInfinity} 
      if(targetVertex.isEmpty()) 
      IsgoalFound=true 
     return IsgoalFound 
     } 

Я получаю эту ошибку:

Error:(41, 54) 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 targetVertex=graph.vertices.filter{ case (id,(_,gScore,_,_,_)) => id == goalVertex._1 && gScore!=Float.PositiveInfinity} 

Любые идеи? Many Thanks

ответ

0

Это похоже на ошибку сериализации. Попробуйте вытаскивания параметр goalVertex._1 в локальную переменную, так что VertexId не сериализовать:

def IsGoalVertexFound(graph: Graph[(VertexId,(Int,Float,Float,Float,String)),Float],goalVertex:(VertexId,(Int,Float,Float,Float))): Boolean ={ 
    var IsgoalFound:Boolean=false 
    val localGoal = goalVertex._1 
    var targetVertex=graph.vertices.filter{ case (id,(_,gScore,_,_,_)) => id == localGoal && gScore!=Float.PositiveInfinity} 
     if(targetVertex.isEmpty()) 
     IsgoalFound=true 
    return IsgoalFound 
} 
0

Я попробовал следующее решение, и она работает правильно:

def IsGoalVertexFound(graph: Graph[(VertexId,(Int,Float,Float,Float,String)),Float],goalVertex:(VertexId,(Int,Float,Float,Float))): Boolean ={ 
    var IsgoalFound:Boolean=false 
    var targetVertex=graph.vertices.filter{ case (id,attr) => id == goalVertex._1 && attr._2._2!=Float.PositiveInfinity}.first() 
    // if(targetVertex.isEmpty()) 
     // IsgoalFound=true 
    return IsgoalFound 
    } 
+0

Спасибо за ваш ответ ... – imen

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

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