簡體   English   中英

在Spark-SQL和GeoMesa中的地理空間表上左半聯接

[英]Left Semi Join on Geo-Spatial tables in Spark-SQL & GeoMesa

問題:

我有2個表(d1和d2)包含地理空間點。 我要執行以下查詢:

select * from table 1 where table1.point is within 50km of any point in table2.point

我正在使用帶有GeoMesaAccumulo Spark-SQL來實現相同的目的。 (火花作為處理引擎,Accumulo作為數據存儲和GeoMesa用於GeoSpatial庫)。

上面的查詢是一種left semi join Spark-SQL但是我不確定如何使用Spark-SQL來實現它,因為就我所讀取的子查詢而言,無法在where子句中使用。

能夠使用以下方法實現此目的:

select * from d1 left semi join d2 on st_contains(st_bufferPoint(d1.point, 10000.0), d2.point)

Spark廣播了d2並正在進行加入,但由於d1的規模為50億,d2的規模為1000萬,因此仍需要花費更多時間。

不知道是否有任何更有效的方法可以達到相同目的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM