minerva/examples/athena_basic_query.py
2023-09-26 18:36:41 -04:00

39 lines
997 B
Python

import minerva
import pprint
pp = pprint.PrettyPrinter(indent=4)
m = minerva.Minerva("hay")
athena = m.athena("s3://haystac-pmo-athena/")
#query = athena.query(
#"""SELECT *
#FROM trajectories.kitware
#WHERE ST_Disjoint(
# ST_GeometryFromText('POLYGON((103.6 1.2151693, 103.6 1.5151693, 104.14797 1.5151693, 104.14797 1.2151693, 103.6 1.2151693))'),
# ST_Point(longitude, latitude)
#)
#""")
# Everything *needs* to have a column in order for parquet to work, so scalar
# values have to be assigned something, so here we use `as count` to create
# a temporary column called `count`
#print(athena.query("select count(*) as count from trajectories.kitware").results().head(1))
query = athena.query(
"""
select round(longitude, 3) as lon, count(*) as count
from trajectories.kitware
where agent = 4
group by round(longitude, 3)
order by count(*) desc
"""
)
data = query.results()
pp.pprint(data.head(10))
print(query.runtime)
#import IPython
#IPython.embed()