我有一个处理包含Twitter流数据的2-3 GB json文件的典型问题。必须过滤掉超过10万条的推文,以获取一些细节,例如“ full_text”,“ created_at”,“ user.location”,“ id”。
在筛选这些内容时,计算机会挂几个小时。为此,我需要缩短代码并更好地使用计算机资源。
我需要优化代码的帮助,以使计算机停止挂机数小时。我的代码在jupyter笔记本上运行,如下所示:
tweet_data = []
for f in filelist:
tweets_file = open(f, "r", encoding="utf-8")
for line in tweets_file:
try:
tweet = json.loads(line)
if isinstance(tweet, dict):
tweet_data.append(tweet)
except:
continue
print("Downloaded {0} tweets.".format(len(tweet_data)))
print(f)
一旦迭代结束,我将尝试将tweet_data加载到数据帧中,如下所示:
tweets = pd.DataFrame()
pd.set_option('display.max_colwidth', 1000)
from pandas.io.json import json_normalize
tweets = json_normalize(tweet_data, errors='ignore')[["full_text", "created_at", "user.location", "id"]]
计算机在第二组代码行上挂起了几个小时。我希望是否可以在不占用最少计算机资源的情况下将上述两个设置代码合并为一个,以便可以从一个文件夹中处理多个1-2 gb文件,总计3-4 gb数据。