Dan*_*ler 8 python concurrency python-multiprocessing dask castra
我有一个json文件目录,我试图转换为dask DataFrame并将其保存到castra.有200个文件,它们之间包含O(10**7)个json记录.代码非常简单,主要遵循教程示例.
import dask.dataframe as dd
import dask.bag as db
import json
txt = db.from_filenames('part-*.json')
js = txt.map(json.loads)
df = js.to_dataframe()
cs=df.to_castra("data.castra")
Run Code Online (Sandbox Code Playgroud)
我在32核机器上运行它,但代码只使用100%的一个核心.我对文档的理解是这段代码并行执行.为什么不呢?我误解了什么吗?
您的最终集合是一个dask数据框,默认情况下使用线程,您必须明确告诉dask使用进程.
你可以在全球范围内这样做
import dask
dask.config.set(scheduler='multiprocessing')
Run Code Online (Sandbox Code Playgroud)
或者只是在to_castra通话中这样做
df.to_castra("data.castra", scheduler='multiprocessing')
Run Code Online (Sandbox Code Playgroud)
另外,作为一个警告,Castra主要是一个实验.它速度相当快,但也不像HDF5或Parquet那样成熟.
| 归档时间: |
|
| 查看次数: |
1101 次 |
| 最近记录: |