我们制作了一个图像识别API,该API接受图像URL并响应图像描述。此过程大约需要5-20秒。 我有一个巨大的CSV文件,其中包含200+百万行来自不同来源的图像URL。我发现CSV文件具有来自不同来源的重复图像URL。因此,我不需要将所有URL发送到图像识别API,只需要将唯一的URL发送到API,但是我需要填充API对所有行的响应。
我以10万行的块读取CSV文件,并创建了一组唯一的图像URL,并在API中对其进行处理,然后再次将结果填充回CSV文件。但这最终导致了内存问题(16 GB RAM),我无法创建一组具有200+百万行的唯一图像URL。
有什么建议吗?
答案 0 :(得分:0)
两种可能的方法:
将CSV文件加载到数据库中,然后使用SQL选择Distinct并将查询结果导出为Csv文件。某些数据库可让您将CSV文件定义为表格,并允许您在CSV文件上运行SQL查询
从UrlTable中选择不同的URL
您可以
答案 1 :(得分:-1)
不确定这种方法是否适用于如此大的文件。但是,您可以尝试一下。
import csv
entries = set()
with open("HugeCSVfile.csv", 'r') as lookuplist:
for col in csv.reader(lookuplist):
key = (col[0].lower()) # add rows you want to compare and remove the duplicates.
if key not in entries:
entries.add(key)
print(key)