Bil*_*iam 3 python parallel-processing json python-3.x dask
我正在尝试使用 Dask 和 read_text 对 json 文件运行一系列操作,但我发现当我检查 Linux 系统监视器时,只有一个核心被 100% 使用。我如何知道我在 Dask Bag 上执行的操作是否能够并行化?这是我正在做的基本布局:
import dask.bag as db
import json
js = db.read_text('path/to/json').map(json.loads).filter(lambda d: d['field'] == 'value')
result = js.pluck('field')
result = result.map(cleantext, tbl=tbl).str.lower().remove(exclusion).str.split()
result.map(stopwords,stop=stop).compute()
Run Code Online (Sandbox Code Playgroud)
基本前提是从json文件中提取文本条目,然后进行一些清理操作。这似乎是可以并行化的,因为每段文本都可以交给处理器,因为每个文本和每个文本的清理都独立于其他文本。这是一个错误的想法吗?有什么我应该做的不同吗?
谢谢。
该read_text函数根据字节范围将文件分解为块。我的猜测是您的文件足够小,可以放入一个块中。您可以通过查看.npartitions属性来检查这一点。
>>> js.npartitions
1
Run Code Online (Sandbox Code Playgroud)
如果是这样,那么您可以考虑减少块大小以增加分区数
>>> js = db.read_text(..., blocksize=1e6)... # 1MB chunks
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |