Если у вас действительно огромное количество записей, вы можете получить приблизительный счет, используя что-то вроде HyperLogLog , и это может быть быстрее, чем count()
. Однако вы не сможете получить никакого результата, не отпуская работу.
При использовании Spark существуют два типа операций RDD: преобразования и действия . Грубо говоря, преобразования меняют RDD и возвращают новый RDD. Действия вычисляют или генерируют некоторый результат. Преобразования лениво оцениваются, поэтому они не запускают работу, пока действие не будет вызвано действием в конце последовательности преобразований.
Поскольку Spark является распределенной структурой программирования, для выполнения заданий много накладных расходов. Если вам нужно что-то, что больше похоже на «реальное время», что бы это ни значило, используйте базовую Scala (или Python), если ваши данные достаточно малы или перейдут на потоковый подход и сделайте что-то вроде обновления счетчика по мере прохождения новых записей.
Это связано с тем, что sudo pip install numpy
никогда не устанавливал numpy в вашем virtualenv. Не использовать sudo
использовать
python -m pip install numpy
После активации вашей виртуальной среды.