Чтобы ответить на вопрос, это не должно иметь большого значения, если вы загрузите данные, а затем примените к ним анализ.Вы просто изменили бы порядок, в котором вы выполняете набор задач, которые фактически занимают одно и то же время.
Единственная разница может заключаться в том, что текстовый корпус достаточно велик, а затем время записи при чтении на диск начнет играть роль, что может немного ускорить запуск аналитики в памяти.Но это все равно не решит твою проблему.
Могу ли я быть настолько смелым, чтобы переосмыслить ваш вопрос следующим образом: «Мой анализ занимает слишком много времени, помогите мне ускорить его!»
Это звучит как идеальный вариант использования для многопроцессорной обработки!Поскольку это звучит как проект по науке о данных, вам нужно pip install multiprocess
, если вы используете ноутбук ipython (например, Jupyter) или import multiprocessing
, если вы используете скрипт на python.Это происходит из-за того, как python передает информацию между процессами, не беспокойтесь, хотя API как для многопроцессорных, так и для многопроцессорных систем идентичны!
Основной и простой способ ускорить ваш анализ - сделать отступ for
цикл и поместите его в функцию.Затем эта функция может быть передана в многопроцессорную карту, которая может порождать несколько процессов и выполнять анализ по нескольким URL-адресам одновременно:
from multiprocess import Pool
import numpy as np
import os
import pandas as pd
num_cpus = os.cpu_count()
def analytics_function(*args):
#Your full function including fetching data goes here and accepts a array of links
return something
df_links_split = np.array_split(df_links, num_cpus * 2) #I normally just use 2 as a rule of thumb
pool = Pool(num_cpus * 2) #Start a pool with num_cpus * 2 processes
list_of_returned = pool.map(analytics_function, df_links_split)
Это ускорит загрузку процессов и задействует весь ваш процессор.Вы не сможете больше ничего делать на своем компьютере, и вам нужно будет открыть монитор ресурсов, чтобы убедиться, что вы не расходуете больше памяти и не замедляете / не прекращаете процесс.Но это должно значительно ускорить ваш анализ примерно в num_cpus * 2 !!