Athena:在此比例因子下查询耗尽的资源

Athena: Query exhausted resources at this scale factor

我有两个数据帧转储,我们称它们为 df1df2,以 json 文件的形式驻留在 s3 中(例如 spark 的输出)。

两个数据集都包含一个 polygon 字段,其中包含一个 WKT 多边形。

df1 > 1TB,df2 ~3GB。

我正在尝试连接这两个数据集,以便多边形相交。但是,Athena 似乎无法处理此类连接查询,并因错误而失败:

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));

有什么办法可以避免这种情况吗?

Athena 是否有可识别的模式,哪些东西适用?

急速supports Spatial queries since version 0.197Athena is based on Presto 0.172,因此它(目前)无法有效地执行此类查询。

如果你有每个多边形的中心坐标并且多边形具有相同的半径,你可以使用haversine函数测量2个多边形中心之间的距离,并与标准半径相比,找出相交的那些。