我使用 tweepy 从文件中收集的推文有超过 700,000 个推文 ID。在本地,我有 I7 处理器和 16 GB 内存,我在这些 IDE 上进行循环以获取全文、地理、坐标和位置属性。
通过使用 tqdm 库,它表明 2.5 次迭代由秒完成,非常慢
之后我使用了 sagemaker 实例: 1 - ml.m5.4xlarge = 64 GB 内存和 16 个 vCPU 2 - ml.m5.12xlarge = 192 GB 内存和 48 个 vCPU
这两个实例给了我相同的结果也大约每秒 2.5 次迭代,相同的结果,怎么可能?
然后我使用免费的 sagemaker studio 实验室,每天给我 12 个小时,这是最快的,它给了我大约每秒 6 次迭代
sample = anger['id'][:100000] tweets = [] geos =[] coords =[] places =[] ids = [] for i in tqdm(sample.index): id = sample[i] # get the tweet #ids.append(id) try: status = api.get_status(id, tweet_mode='extended') text = status._json['full_text'] geo = status.geo coordinates = status.coordinates place = status.place ids.append(id) tweets.append(text) geos.append(geo) coords.append(coordinates) places.append(place) except tweepy.errors.TweepyException as e: #print(i) pass
创建数据框
data = {
'id' : ids, 'text': tweets, 'geo': geos, 'coordinates': coords, 'places':places }
anger_dataframe =pd.DataFrame(data)
anger_dataframe.to_csv('anger_dataframe.csv', encoding='utf-8-sig')
块引用
我的第一个问题: 为什么具有这些资源的 sagemaker 实例给我相同的结果并且与我的本地资源没有区别。 而且 sagemaker studio lab 每秒给我大约 6 次迭代,但这对我来说还不够,我有 600 万个 ides 需要收集。
第二个问题: for循环是否有任何增强以运行得更快.
资源: