我在容器中使用熊猫,但出现以下错误:
Traceback (most recent call last):
File "/volumes/dependencies/site-packages/celery/app/trace.py", line 374, in trace_task
R = retval = fun(*args, **kwargs)
File "/volumes/dependencies/site-packages/celery/app/trace.py", line 629, in __protected_call__
return self.run(*args, **kwargs)
File "/volumes/code/autoai/celery/data_template/api.py", line 16, in run_data_template_task
data_template.run(data_bundle, columns=columns)
File "/volumes/code/autoai/models/data_template.py", line 504, in run
self.to_parquet(data_bundle, columns=columns)
File "/volumes/code/autoai/models/data_template.py", line 162, in to_parquet
}, parquet_path=data_file.path, directory="", dataset=self)
File "/volumes/code/autoai/core/datasets/parquet_converter.py", line 46, in convert
file_system.write_dataframe(parquet_path, chunk, directory, append=append)
File "/volumes/code/autoai/core/file_systems.py", line 76, in write_dataframe
append=append)
File "/volumes/dependencies/site-packages/pandas/core/frame.py", line 1945, in to_parquet
compression=compression, **kwargs)
File "/volumes/dependencies/site-packages/pandas/io/parquet.py", line 256, in to_parquet
impl = get_engine(engine)
File "/volumes/dependencies/site-packages/pandas/io/parquet.py", line 40, in get_engine
return FastParquetImpl()
File "/volumes/dependencies/site-packages/pandas/io/parquet.py", line 180, in __init__
import fastparquet
File "/volumes/dependencies/site-packages/fastparquet/__init__.py", line 8, in <module>
from .core import read_thrift
File "/volumes/dependencies/site-packages/fastparquet/core.py", line 13, in <module>
from . import encoding
File "/volumes/dependencies/site-packages/fastparquet/encoding.py", line 11, in <module>
from .speedups import unpack_byte_array
File "__init__.pxd", line 861, in init fastparquet.speedups
ValueError: numpy.ufunc has the wrong size, try recompiling. Expected 192, got 216
我在other answers上读到,当使用比您所安装的numpy版本新的numpy版本编译熊猫时,会显示此消息。但是同时更新熊猫和numpy对我来说不起作用。我试图找出是否有一些numpy版本,但是pip show numpy
似乎显示了最新版本。
此外,这仅在我本地部署而不是在服务器上部署时才发生。
任何想法如何解决该问题?或者至少如何调试numpy和pandas版本(如果有多个版本,如何检查)
我尝试过:升级两个软件包,然后删除并重新安装它们。那里没有帮助。
答案 0 :(得分:7)
TLDR:如果是docker 添加:
RUN pip install numpy
之前安装熊猫(可能只是pip install -r requirements.txt) 并且它将再次正常工作。
我正在docker建造阿尔卑斯山的熊猫中这样做并遇到相同的问题,它只是弹出(2018年12月27日),用于以前运行良好的构建。
答案 1 :(得分:4)
答案是因为某些原因,fastparquet(熊猫使用的软件包)正在使用numpy较旧的二进制文件。
更新该软件包很有帮助。我想如果有人解决此问题,尝试更新所有相关软件包(使用numpy)将是正确的方法
答案 2 :(得分:3)
实际上我的问题通过某种方式得到了解决
driver.runAppInBackground(Duration.ofSeconds(5))
真正的过程是
pip uninstall numpy
pip install numpy
这意味着问题可能是版本冲突?
答案 3 :(得分:0)
确保在/volumes/dependencies/site-packages/
上安装了正确版本的numpy,并且您正在使用它。
答案 4 :(得分:0)
我遇到了同样的问题,并尝试了上述所有答复(在撰写本文时)。对我唯一有用的是切换到pyarrow
。
然后确保在大熊猫中使用实木复合地板时指定pyarrow
引擎。尽管根据文档,大熊猫应该在pyarrow
之前默认使用fastparquet
引擎。
pd.read_parquet('./path', engine='pyarrow')
答案 5 :(得分:0)
我遇到了与上述相同的问题。我的解决方案是从官方网站https://www.python.org/downloads/release/python-2713/
安装Python 2.7答案 6 :(得分:-1)
我对大熊猫也有同样的问题。通过执行以下变通办法可以解决此问题,
pip uninstall --yes numpy
easy_install --upgrade numpy