Геопространственный анализ в Pyspark (точка в многоугольнике) - PullRequest
0 голосов
/ 31 марта 2020

У меня есть случай, когда мне дано 4 набора географических точек, которые представляют 4 прямоугольника. У меня есть таблица, которая имеет точку (которая является просто широтой и долготой). Моя задача - проверить, находится ли точка в таблице в любом из четырех прямоугольников.

Это должно быть сделано в Pyspark. Я попробовал это с помощью udf, но это заняло много времени, так как основная таблица содержит много строк. Может ли кто-нибудь помочь мне, как эффективно решить эту проблему в Pyspark.

Прямо сейчас я использовал Shapely, чтобы помочь мне с созданиями Point и Polygon

1 Ответ

1 голос
/ 31 марта 2020

Мы можем думать о прямоугольнике как о пространстве, ограниченном (min_latitude, max_latitude) и (min_longitude, max_longitude). Предположим, ваша точка интереса x = (lat, lon). Теперь для каждого прямоугольника нужно проверить, есть ли min_latitude <=x <= max_latitude и min_longitude <= y <= max_longitude. Это может быть сделано с использованием встроенных функций искры, UDF не требуется. Кроме того, перед выполнением этих операций вы можете выбрать только необходимые столбцы (dataframe.select (cols ...)) в исходном кадре данных, чтобы отбросить избыточную информацию.

...