我想读取一个大文件(4GB)作为一个Pandas数据文件。由于直接使用Dask仍然会消耗最大的CPU,所以我将文件读取为熊猫数据格式,然后使用dask_cudf,然后转换回熊猫数据格式。
但是,我的代码仍在使用Kaggle上的最大CPU。GPU加速器开机。
import pandas as pd
from dask import dataframe as dd
from dask_cuda import LocalCUDACluster
from dask.distributed import Client
cluster = LocalCUDACluster()
client = Client(cluster)
df = pd.read_csv("../input/subtype-nt/meth_subtype_normal_tumor.csv", sep="\t", index_col=0)
ddf = dask_cudf.from_cudf(df, npartitions=2)
meth_sub_nt = ddf.infer_objects()发布于 2022-07-31 15:08:08
我也遇到过类似的问题。通过一些研究,我了解了瓦埃克斯。
本质上,这就是你可以尝试做的事情:
csv文件并将其转换为hdf5文件(为Vaex优化的文件格式)
( vaex.from_csv('../input/subtype-nt/meth_subtype_normal_tumor.csv',convert=True,chunk_size=5_000)hdf5文件。Vaex将执行memory-mapping,因此不会将数据加载到内存中。
vaex.open('../input/subtype-nt/meth_subtype_normal_tumor.csv.hdf5') = vaex_df现在,您可以对Vaex数据文件执行操作,就像您对Pandas所做的那样。它将是惊人的快速,你肯定会注意到巨大的性能提高(较低的CPU和内存使用)。
您还可以尝试将您的csv文件直接读取到Vaex数据文件中,而无需将其转换为hdf5。我在某个地方读到Vaex在hdf5文件中运行得最快,因此我建议采用上述方法。
vaex_df = vaex.from_csv('../input/subtype-nt/meth_subtype_normal_tumor.csv.hdf5', chunk_size=5_000)发布于 2022-08-01 04:44:07
现在,您的代码建议您首先尝试使用pandas加载数据,然后将其转换为dask-cuDF数据。这不是最优的(甚至可能是不可行的)。相反,可以使用dask_cudf.read_csv函数(参见文档):
from dask_cudf import read_csv
ddf = read_csv('example_output/foo_dask.csv')https://stackoverflow.com/questions/73184224
复制相似问题