首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GeoSpark显示SQL结果失败

GeoSpark显示SQL结果失败
EN

Stack Overflow用户
提问于 2020-09-19 18:34:17
回答 1查看 143关注 0票数 0

我使用的是GeoSpark 1.3.1,我试图找到包含在多边形中的所有地理点。我使用sql命令:

代码语言:javascript
复制
val result = spark.sql(
    |SELECT *
    |FROM spatial_trace, streetCrossDf
    |WHERE ST_Within (streetCrossDf.geometry, spatial_trace.geometry)
    """.stripMargin)

result.show() 

查询运行得很好,但是当我试图显示结果时,查询失败了。看起来像是库中的输出问题。我在齐柏林飞艇笔记本上做这件事。有人能告诉我我做错了什么吗?我得到以下错误:

org.apache.spark.SparkException:由于阶段故障而中止作业:阶段10.0中的任务0失败了4次,最近一次失败:阶段10.0中丢失了任务0.3 (TID 15,10.42.22.236,执行器3):在org.apache.spark.sql.geosparksql.strategy.join.TraitJoinQueryExec$$anonfun$toSpatialRdd$1.apply(TraitJoinQueryExec.scala:164) at org.apache.spark.sql.geosparksql.strategy.join.TraitJoinQueryExec$$anonfun$toSpatialRdd$1.apply(TraitJoinQueryExec.scala:163) at scala.collection.Iterator$$anon$11.next(Iterator.scala:410) at scala.collection.Iterator$class.foreach(Iterator.scala:891) at scala中,java.lang.ClassCastException: org.apache.spark.unsafe.types.UTF8String不能强制转换为org.apache.spark.sql.catalyst.util.ArrayData.collection.AbstractIterator.foreach(Iterator.scala:1334)在scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:157)在scala.collection.AbstractIterator.foldLeft(Iterator.scala:1334)在scala.collection.TraversableOnce$class.aggregate(TraversableOnce.scala:214)在scala.collection.AbstractIterator.aggregate(Iterator.scala:1334)在org.apache.spark.rdd.RDD$$anonfun$aggregate$1$$anonfun$22.apply(RDD.scala:1122)在org.apache.spark.rdd.RDD$$anonfun$aggregate$1$$anonfun$22.apply(RDD.scala:1122)在org.apache.spark.SparkContext$$anonfun$36。在org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)在org.apache.spark.scheduler.Task.run(Task.scala:121)在org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:402)在org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)在org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:408)在org.apache.spark.SparkContext$$anonfun$36.apply(SparkContext.scala:2157)申请(SparkContext.scala:2157)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-17 05:11:11

我知道我来晚了,但是这个问题已经由开发人员here解决了。需要使用constructor转换几何

示例修复:

代码语言:javascript
复制
WHERE ST_Within (ST_GeomFromWKT(streetCrossDf.geometry), ST_GeomFromWKT(spatial_trace.geometry))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63967777

复制
相关文章

相似问题

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