我有一个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%地利用了一个核心。从文档中我的理解是,这段代码是并行执行的。为什么不是呢?我是不是误解了什么?
发布于 2016-02-20 07:04:10
您的最终集合是dask dataframe,默认情况下它使用线程,您必须显式地告诉dask使用进程。
您可以在全局范围内执行此操作
import dask
dask.config.set(scheduler='multiprocessing')或者只在to_castra调用时执行此操作
df.to_castra("data.castra", scheduler='multiprocessing')此外,作为警告,卡斯特拉主要是一个实验。它相当快,但也不像HDF5或拼花那样成熟。
https://stackoverflow.com/questions/35516305
复制相似问题