У меня есть список диапазонов, как показано ниже:
У меня есть список значений, как показано ниже:
Теперь, что мне нужно сделать, для каждого значения в «Списке значений» мне нужно получить индекс строки в «Списке диапазонов»таким образом, что значение находится между «От» и «До» этой строки в «Списке диапазонов».
Допущения:
- Оба списка являются фреймами данных (Iпредпочел бы, чтобы это был pyspark)
- В «Списке диапазонов» могут быть наложения, в этом случае возвращаются все возможные индексы диапазона
- Значения From и To являются Inclusive
- «Список диапазонов» может иметь более 100 миллионов строк
- Длина «Списка значений» всегда будет меньше, чем «Список диапазонов». (Даже если на моем рисунке это не показано)
Объясняя вышеприведенное с примером,
Первый элемент в «Списке значений» - «17», а диапазон дозначение которого находится в индексе 2 «Списка диапазонов», а 17 находится в диапазоне от 15 до 19.
Вторым элементом в «Списке значений» является «51», и диапазон, в который он попадает, будетбыть в индексе 9 «Списка диапазонов», так как 51 находится между 50 и 54.
Я хотел бы, если есть какой-либо быстрый / эффективный способ поиска диапазонов в pyspark.