[英]one job takes extremely long on multiple left join in Spark-SQL (1.3.1)
[英]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
我正在使用帶有GeoMesa
和Accumulo
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.