我有以下Dataframe:
+-------------+-----------------+------------------+
|longitude |latitude |geom |
+-------------+-----------------+------------------+
|-7.07378166 |33.826661 [00 00 00 00 01 0..|
|-7.5952683 |33.544191 [00 00 00 00 01 0..|
+-------------+-----------------+------------------+
我使用以下代码:
Dataset<Row> result_f = sparkSession.sql("select * from data_f where ST_WITHIN(ST_GeomFromText(CONCAT('POINT(',longitude_f,' ',latitude_f,')',4326)),geom)");
result_f.show();
但我得到以下错误:
java.lang.ClassCastException: [B cannot be cast to org.apache.spark.sql.catalyst.util.ArrayData
at org.apache.spark.sql.geosparksql.expressions.ST_Within.eval(Predicates.scala:105)
编辑
longitude : Double type
latitude : Double type
geom : Binary type
你知道吗?我需要你的帮助
谢谢您
1条答案
按热度按时间3gtaxfhh1#
我不认为stu geomfromtext可以从文本构造几何体,但是有:
圣彼得堡
圣彼得堡
圣乔治
斯图角
st\u pointfromtext公司
st\ u polygonfromtext公司
stu linestringfromtext从文本
st\ u PolygonFrom信封
stïu圆
我建议两者都用
ST_Point
或者ST_PointFromText
然后是 predicateST_WITHIN
像这样: