I am getting myself acquainted with Esri's GIS Tools for Hadoop. Working with Hive.

One of my tables, A, has user lat-lons. Another, B, has landmarks and their lat-lons. How do I join two tables so that I get all landmarks names and their locations from B within a given distance (radius) from each location in A? How to replicate a k-NN query, if possible?

Can I do it with Esri's GIS Tools for Hadoop?

I have heard of Hadoop GIS and SpatialHadoop, but there are limitations - cannot get them working.


For distance join, try ST_GeodesicLengthWGS84, as also discussed in a GitHub issue.

More samples of ST_GeodesicLengthWGS84 can be found in this test script.

For selecting attributes with a spatial join, see the point-in-polygon sample in GIS Tools for Haoop.

For kNN, can you accept an upper bound on the distance? If so, distance query + order by + limit.

[Disclosure: collaborator.]

Not the answer you're looking for? Browse other questions tagged or ask your own question.