如何解决dask存储库中的语义版本控制
由于函数read_metadata与旧版本不兼容,为什么the commit 7138f470f0e55f2ebdb7638ddc4dfe2e78671403不会触发dask的新主版本?提交引入了4个值的返回,但是旧版本仅返回3个值。根据语义versioning,这将是正确的行为。
cudf由于该提交而被破坏。
问题代码:
>>> import cudf
>>> import dask_cudf
>>> dask_cudf.from_cudf(cudf.DataFrame({'a':[1,2,3]}),npartitions=1).to_parquet('test_parquet')
>>> dask_cudf.read_parquet('test_parquet')
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
File "/nvme/0/vjawa/conda/envs/cudf_15_june_25/lib/python3.7/site-packages/dask_cudf/io/parquet.py",line 213,in read_parquet
**kwargs,File "/nvme/0/vjawa/conda/envs/cudf_15_june_25/lib/python3.7/site-packages/dask/dataframe/io/parquet/core.py",line 234,in read_parquet
**kwargs
File "/nvme/0/vjawa/conda/envs/cudf_15_june_25/lib/python3.7/site-packages/dask_cudf/io/parquet.py",line 17,in read_metadata
meta,stats,parts,index = ArrowEngine.read_metadata(*args,**kwargs)
ValueError: not enough values to unpack (expected 4,got 3)
dask_cudf == 0.14仅与dask
解决方法
尽管Dask对版本字符串的值没有具体的政策,但有人可能会争辩说,在这种特殊情况下,IO代码是非核心的,并且很大程度上是由上游(pyarrow)开发而不是我们自己开发的主动性。
对于您的代码已损坏,我们深感抱歉,但是当然选择正确版本的软件包并期望下游软件包能够赶上是开源生态系统的一部分。
如果您想从更多的敏捷维护团队那里得到建议,您可能想把它作为github问题提出。 (从stackoverflow的角度来看,这里实际上没有多少“答案”)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。