我有两个Dataframe转储,让我们调用它们 df1
以及 df2
,以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));
有什么办法可以避免这种情况吗?
雅典娜是否有一个可识别的模式,哪种模式有效?
1条答案
按热度按时间dm7nw8vv1#
presto自版本0.197起支持空间查询。athena是基于presto 0.172的,所以它(目前)不能有效地执行这样的查询。