python - Dask Distributed.core - 错误 - “元组”对象不支持项目分配
问题描述
我在我的项目中使用 Dask 和 cython,我在向客户端注册后调用 cython 代码并将获得的结果从 cython 代码收集到我的 dask-python 代码。当我使用 processes=True 创建一个集群时,它工作正常。但是,一旦我写出 processes=False,它就会给我以下错误:
distributed.core - ERROR - 'tuple' object does not support item assignment
Traceback (most recent call last):
File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/core.py", line 555, in handle_stream
msgs = await comm.read()
File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/comm/inproc.py", line 199, in read
msg = nested_deserialize(msg)
File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 549, in nested_deserialize
return replace_inner(x)
File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 541, in replace_inner
x[k] = replace_inner(v)
File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 534, in replace_inner
x[k] = deserialize(v.header, v.frames)
File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 388, in deserialize
return loads(header, frames)
File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 83, in pickle_loads
buffers[i] = buf.cast(mv.format)
TypeError: 'tuple' object does not support item assignment
distributed.worker - ERROR - 'tuple' object does not support item assignment
我正在使用以下代码片段:
from dask.distributed import Client, LocalCluster,wait
cluster=LocalCluster(processes=False)
client=Client(cluster)
client.register_worker_callbacks(init_pyx) ## init_pyx is a function by which worker register to cython code
df = dd.read_csv(path_to_csv_file)
processed_df=df.map_partitions(lambda part: handle_partition(part),meta=meta) #handle partition is function which uses cython code to preprocess each partition of dataframe, meta is metadata related to preproceesed part
client.close()
另外,早些时候我遇到了与内存视图相关的问题,但是当我重新安装 dask 时,内存视图错误消失了。现在出现了一个与“TypeError: 'tuple' object does not support item assignment”相关的新错误。
我也是Dask的新手,如果有人知道如何解决它,请在这方面帮助我。提前致谢。
解决方案
推荐阅读
- sql-server - SAS dsn 到 SQL 服务器
- jquery - Jquery ui 日期选择器被表单中的“以前的条目”阻止
- jquery - 在带参数的 jQuery 函数中使用 async & await
- .net-core - 如何使用 ElmahCore 接收错误邮件
- react-native - 如何从 api 更改本机应用程序布局
- c++ - 更新不调用paintEvent?
- python - 如何在 Python 中的进程之间传递堆栈跟踪?
- php - 如何在表单提交中按角色过滤 WP_User_Query()
- apache-kafka - Kafka - 处理速度慢的消费者的最佳实践。如何实现更多的并行性?
- python - 完成 firefox selenium 测试后出现“没有这样的文件或目录”错误消息