У меня есть набор из 150 миллионов целых чисел в Python, которые я хотел бы использовать для фильтрации данных. Каждое из этих целых чисел является «идентификатором пользователя», хранящимся в 32-битном формате, и я хочу удалить всех пользователей, которые есть в наборе. Набор слишком велик, так как мне нужно передать его множеству воркеров в кластере, где у каждого воркера есть ограниченный объем памяти. Поскольку мне нужно только двоичное значение (пользователь установлен / не установлен), кажется возможным сделать это с помощью битового массива.
Идентификаторы начинаются с 0 и заканчиваются примерно 300M (т.е. половина пользователей входит в набор). Весь битовый массив должен иметь значение False (т.е. 0), за исключением местоположений, содержащихся в наборе целых чисел.
Я просмотрел пакет bitstring
и bitarray
package, но я не уверен, что лучше для моей цели и как мне это сделать. Может ли кто-нибудь дать руководство или небольшой пример того, как преобразовать мой набор в битовый массив, а затем выполнить поиск с его помощью?