首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构造函数无法实例化为所需的类型;找到:(T1,T2,T3,T4,T5)

构造函数无法实例化为所需的类型;找到:(T1,T2,T3,T4,T5)
EN

Stack Overflow用户
提问于 2016-10-30 03:06:36
回答 2查看 1.4K关注 0票数 0

我是spark-graphx和scala的新手。我编写此方法来验证球门顶点的得分是否已更改。

代码语言:javascript
复制
 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
      }

我得到了这个错误:

代码语言:javascript
复制
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}

有什么想法吗?非常感谢

EN

回答 2

Stack Overflow用户

发布于 2016-10-30 05:49:01

这看起来像是序列化错误。尝试将goalVertex._1参数提取到局部变量中,这样VertexId就不会被序列化:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2016-10-30 19:26:48

我尝试了以下解决方案,它工作正常:

代码语言:javascript
复制
 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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40322642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档