Hi,

I'm looking into spatial range query using Apache Sedona in spark
structured streaming. In my test code, I joined two streams using
`st_contains` like following:

Dataset<Row> fenced = spark.sql(
>   "SELECT * FROM poly, pts WHERE
> ST_Contains(ST_PolygonFromText(poly.value,','),
> ST_PointFromText(pts.value,','))");


I created two streams from `sparkSession.readStream()` and created two
views 'poly' and 'pts' respectively. As you expect, I wanted to know
whether the polygon contains the point.

However, It does not work and I get an exception like this:

Caused by: org.apache.spark.sql.AnalysisException: Stream-stream join
> without equality predicate is not supported;;
>   Join Inner,
>  **org.apache.spark.sql.geosparksql.expressions.ST_Contains$**


Looks like structured streaming has a restriction on that kind of join
query.

Please let me know if there is a workaround for spatial joins and also, any
plans to support joins in  structured streaming from Sedona.

Spark 3.0.1 and GeoSpark 1.3.2-SNAPSHOT for my test env.

Thanks,
Youngwoo

Reply via email to