2024-04-25 16:22:41 发布
网友
我在一台计算机上运行Dask,其中运行.compute()对一个巨大的拼花地板文件执行计算将导致Dask耗尽系统上的所有CPU核
.compute()
import dask as dd df = dd.read_parquet(parquet_file) # very large file print(df.names.unique().compute())
是否可以将dask配置为使用特定数量的CPU核,并将其内存使用限制为32GB?使用Python 3.7.2和Dask 2.9.2
Dask.distributed.Client创建一个LocalCluster,您可以为其显式设置内存使用和核心数
import numpy as np import pandas as pd from dask.distributed import Client from dask import dataframe as dd def names_unique(x): return x['Names'].unique() client = Client(memory_limit='2GB', processes=False, n_workers=1, threads_per_worker=2) # Data generation df = pd.DataFrame({'Names': np.random.choice(['A', 'B', 'C', 'D'], size=1000000), 'sales': np.arange(1000000)}) df.to_parquet('parq_df') ddf = dd.read_parquet('parq_df', npartitions=10) # Custom computation sent = client.submit(names_unique, ddf) names_unique = sent.result().compute() client.close()
输出:
names_unique Out[89]: 0 D 1 B 2 C 3 A Name: Names, dtype: object
Dask.distributed.Client创建一个LocalCluster,您可以为其显式设置内存使用和核心数
输出:
相关问题 更多 >
编程相关推荐