0

我有一个 csv 正在读入 Pandas DataFrame,但需要大约 35 分钟才能读完。csv 大约为 120 GB。我发现了一个名为cudf允许 GPU DataFrame 的模块,但它仅适用于Linux. 有类似的东西Windows吗?

chunk_list = []
combined_array = pd.DataFrame()
for chunk in tqdm(pd.read_csv('\\large_array.csv', header = None, 
        low_memory = False, error_bad_lines = False, chunksize = 10000)):
    print(' --- Complete')
    chunk_list.append(chunk)
array = pd.concat(chunk_list)
print(array)
4

2 回答 2

1

你有 GPU 吗?如果是,请查看BlazingSQL,Python 包中的 GPU SQL 引擎。

在本文中,描述使用 BlazingSQL 查询 TB。并且 BlazingSQL 支持从 CSV 读取。

将 GPU 数据帧转换为 Pandas 数据帧后

# from cuDF DataFrame to pandas DataFrame
df = gdf.to_pandas()
于 2020-08-25T05:34:59.307 回答
1

如果你真的想把它读成like ,你也可以看看dask-dataframepandas apidataframe

对于阅读csvs,这将使您的 io 任务跨多个内核和节点并行化。这可能会通过跨节点扩展来减轻内存压力,就像使用120 GBcsv 一样,您也可能会受到内存限制。

另一个不错的选择可能是使用箭头

于 2019-11-14T18:43:08.663 回答