分享

spark运行rdd过程中,调用方法的过程中卡死

我最近有个实现,rdd存的是一个多边形的边界,通过WKT来进行判断这个边界是否与另外一个多边形边界数组存在相交的状态,然后在集群上跑的时候,直接卡死运行不了。
调用的判断方法def judgePolygonIsIntersect(wktStr1: String, wktStr2: String) = {

  var flag = false
  val wktRead = new WKTReader()
  val a: Polygon = wktRead.read(wktStr1).asInstanceOf[Polygon]
  var b: Polygon = wktRead.read(wktStr2).asInstanceOf[Polygon]
  if (a.intersects(b) || a.contains(b) || a.within(b))
    flag = true
  flag
}
然后我在rdd先将多边形的边界转换成Polygon然后在进行判断又可以在集群上跑,这是为什么?
问题如下:1、为什么会这样,自己本地debug时一调用上面的方法就卡死?
2、怎么解决这个存在的现象?因为数据量更大时,会不会更跑不动?现在的数据量才40多M

已有(1)人评论

跳转到指定楼层
langke93 发表于 2018-6-8 18:12:00
猜测是类型的问题。
var b: Polygon = wktRead.read(wktStr2).asInstanceOf[Polygon]
wktRead.read(wktStr2)
他读完之后是什么类型?这个楼主应该知道。这个类型可能是在判断中不被识别的

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条