未找到Dask PicklingError函数

未找到Dask PicklingError函数,dask,pydantic,Dask,Pydantic,我正在尝试使用&dask进行一些并行数据验证 将dask.bag作为数据库导入 从pydantic导入BaseModel 类别MyData(基本模型): id:int 姓名:str def验证_数据(数据): 返回MyData(**数据) 数据=[ {'id':1,'name':'Foo'}, {'id':2,'name':'Bar'} ] bag=db.自_序列(数据) map(验证_数据).compute() 这会引发以下酸洗错误(完整堆栈跟踪可用): 将pydantic模型定义移动到一个

我正在尝试使用&dask进行一些并行数据验证

将dask.bag作为数据库导入
从pydantic导入BaseModel
类别MyData(基本模型):
id:int
姓名:str
def验证_数据(数据):
返回MyData(**数据)
数据=[
{'id':1,'name':'Foo'},
{'id':2,'name':'Bar'}
]
bag=db.自_序列(数据)
map(验证_数据).compute()
这会引发以下酸洗错误(完整堆栈跟踪可用):


将pydantic模型定义移动到一个单独的文件为我解决了这个问题:

#my_data.py
从pydantic导入BaseModel
类别MyData(基本模型):
id:int
姓名:str
#main.py
将dask.bag作为数据库导入
从my_数据导入MyData
def验证_数据(数据):
返回MyData(**数据)
数据=[
{'id':1,'name':'Foo'},
{'id':2,'name':'Bar'}
]
bag=db.自_序列(数据)
map(验证_数据).compute()
现在将此标记为答案,如果有人解释了为什么会出现这种情况,我会将其标记为答案

~/Library/Caches/pypoetry/virtualenvs/domi-IWOYYLRr-py3.7/lib/python3.7/site-packages/cloudpickle/cloudpickle.py in save_global(self, obj, name, pack)
    840             self._save_parametrized_type_hint(obj)
    841         elif name is not None:
--> 842             Pickler.save_global(self, obj, name=name)
    843         elif not _is_importable_by_name(obj, name=name):
    844             self.save_dynamic_class(obj)

~/.pyenv/versions/3.7.6/lib/python3.7/pickle.py in save_global(self, obj, name)
    958             raise PicklingError(
    959                 "Can't pickle %r: it's not found as %s.%s" %
--> 960                 (obj, module_name, name)) from None
    961         else:
    962             if obj2 is not obj:

PicklingError: Can't pickle <cyfunction int_validator at 0x116503460>: it's not found as pydantic.validators.lambda11