我有一个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")
我在32核机器上运行它,但代码只使用100%的一个核心。我对文档的理解是这段代码并行执行。为什么不呢?我误解了什么吗?
您的最终集合是一个dask数据框,默认情况下使用线程,您必须明确告诉dask使用进程。
你可以在全球范围内这样做
import dask
dask.config.set(scheduler='multiprocessing')
或者只是在to_castra
电话上这样做
df.to_castra("data.castra", scheduler='multiprocessing')
另外,作为一个警告,Castra主要是一个实验。它速度相当快,但也不像HDF5或Parquet那样成熟。