gpt4 book ai didi

python - 在 Glue pythonshell 中使用 pyarrow - ModuleNotFoundError : No module named 'pyarrow.lib'

转载 作者:行者123 更新时间:2023-12-05 06:20:25 26 4
gpt4 key购买 nike

创建了 pyarrow 的 eggwhl 文件并将其放在 s3 上,以便在 pythonshell 作业中调用它。收到此消息:

工作代码:

import pyarrow
raise

错误,whl 的相同结构:

Traceback (most recent call last):
File "/tmp/runscript.py", line 118, in <module>
runpy.run_path(temp_file_path, run_name='__main__')
File "/usr/local/lib/python3.6/runpy.py", line 263, in run_path
pkg_name=pkg_name, script_name=fname)
File "/usr/local/lib/python3.6/runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "/usr/local/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/tmp/glue-python-scripts-e67xuz2j/genos.py", line 1, in <module>
File "/glue/lib/installation/kanna-0.1-py3.6.egg/pyarrow/__init__.py", line 49, in <module>
from pyarrow.lib import cpu_count, set_cpu_count
ModuleNotFoundError: No module named 'pyarrow.lib'

PD: 在本地文件中找不到 lib.py 或 lib 文件夹。

最佳答案

我在使用 AWS Lambda 时遇到了同样的问题并遇到了这个问题。

对于胶水,AWS docs state 只能使用纯 python 库。 AWS Glue docs sreenshot

对于 Lambda:

潜在的问题是像 pyarrow 这样的模块将它们的代码从 C/C++ 移植过来。当你查看 pyarrow 代码库时,你会发现实际上存在两个 pyarrow.lib 文件,但它们具有 .pyx 和 .pxd 文件扩展名。这不是纯 Python 代码,因此取决于底层 CPU 架构。

我必须为 pyarrow 及其依赖项 numpy 所需的版本手动下载 .whl 文件。来自 http://pypi.org/project/pyarrow/ ,单击下载文件并搜索匹配的版本。 cp39 表示 cpython 3.9。 x86代表CPU架构。对 Numpy 执行相同的步骤。我最终下载了这些文件:pyarrow-8.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whlnumpy-1.22.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl .

然后您必须解压缩它们并创建一个存档,将它们放在一个名为 Python 的文件夹中。此文件夹可用于在 Lambda 中创建层。将这一层附加到您的项目并导入 pyarrow 应该可以工作。

另一种解决方案是使用自定义 Docker 镜像。这对我也有用。我相信AWS docs在该主题上详尽无遗。我已经编写了一个 PoC 以及我遵循的所有步骤 here .

我关注了this guide用于创建 pyarrow 层。

关于python - 在 Glue pythonshell 中使用 pyarrow - ModuleNotFoundError : No module named 'pyarrow.lib' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60512926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com