У меня есть два дампа фрейма данных, позвольте называть их df1
и df2
, находящиеся в s3 в виде файлов json (вывод, скажем, искры).
Оба набора данных содержат поле polygon
, которое содержит многоугольник WKT.
df1
is > 1TB, df2
is ~3GB.
Я пытаюсь объединить эти два набора данных так, чтобы полигоны пересекались. Однако похоже, что Афина не может обрабатывать такие запросы на соединение, что приводит к ошибке:
Query exhausted resources at this scale factor
Запрос:
select count(*) from
df1
left join df2
on st_intersects(df1.polygon, df2.polygon)
limit 1;
Однако запросы без географии работают абсолютно нормально. Одноточечные гео-запросы также работают нормально:
select (st_area(st_intersection(polygon, ST_Point(-64.0059731, 27.7143528))) / st_area(polygon))
from df1
where st_contains(polygon, ST_Point(-64.0059731, 27.7143528));
Есть ли способ избежать этого?
Есть ли у Афины определенный шаблон, для которого все работает?