PySpark集成Apache Sedona执行SQL查询时遇Scala.MatchError,疑版本不兼容
PySpark + Apache Sedona 空间查询报错问题
开发需求
我正在开发一个PySpark应用,需要完成以下操作:
- 从CSV文件读取点集合
- 从CSV文件读取多边形集合
- 使用
ST_Intersects执行SQL查询,判断点与多边形的重叠情况
运行报错
Py4JJavaError: An error occurred while calling o1539.showString. : org.apache.spark.SparkException: Job aborted due to stage failure: Task 56 in stage 255.0 failed 4 times, most recent failure: Lost task 56.3 in stage 255.0 (TID 874) (node5 executor 2): scala.MatchError: 40.74207644618617 (of class org.apache.spark.unsafe.types.UTF8String) ... Caused by: scala.MatchError: 40.74207644618617 (of class org.apache.spark.unsafe.types.UTF8String) at org.apache.spark.sql.sedona_sql.expressions.ST_Point.eval(Constructors.scala:315)
当前环境组件版本
- Hadoop 3.3.6(所有节点)
- Java JDK 11.0.1(Hadoop支持的最新版本)
- Spark 3.5.0
- Anaconda3-2023.09-0
- PySpark 3.4.1
- Apache Sedona 1.5
推测问题原因
经多方排查,推测问题源于Spark、PySpark与Apache Sedona的版本不兼容。
内容的提问来源于stack exchange,提问作者Karthik Sankaran
相关产品推荐
相关产品推荐

