Как уменьшить нагрузку на память с помощью аргумента pandas json_read chunksize? - PullRequest
1 голос
/ 18 июня 2020

У меня есть список очень больших json файлов (около сотни файлов, каждый с сотнями тысяч записей), которые я хотел бы прочитать, используя аргумент chunksize в pandas .read_ json, чтобы уменьшить нагрузку на память. Однако, похоже, это не снижает нагрузку на память, поэтому я, должно быть, делаю что-то не так. Вот что у меня есть:

keys = ['created_at','id','full_text','retweet_count','favorite_count','entities','user']
user_keys = ['screen_name','id','location','followers_count','created_at','statuses_count']
tweets = pd.DataFrame(columns = keys)
tweets_user = pd.DataFrame(columns = user_keys)

# pull relevant information, save to df
for file in filelist:
    j = pd.read_json(file, lines = True, chunksize = 1000)
    for chunk in j:
        tweets_temp = pd.DataFrame(chunk, columns = keys)
        tweets = tweets.append(tweets_temp,ignore_index = True)
        tweets_user = tweets_user.append(pd.DataFrame(tweets_temp['user'].to_list(), columns = user_keys), ignore_index = True)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...