我需要在AWS EMR PySpark内核中安装一个包。我使用以下代码
sc.install_pypi_package("statsmodels")
这样做我得到的错误
statsmodels/tsa/_stl.c:39:10: fatal error: Python.h: No such file or directory
#include "Python.h"
^~~~~~~~~~
compilation terminated.
error: command 'gcc' failed with exit status 1
如何解决此问题我。还有更多像s3fs这样的软件包,当我尝试安装它们时,它们会给予相同的错误。
经过谷歌搜索我做了以下工作
sudo yum install python-dev
但这个又回来了
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
3 packages excluded due to repository priority protections
No package python-dev available.
Error: Not tolerating missing names on install, stopping.
我对EMR是如何运行的知之甚少,这不是我所理解的。
1条答案
按热度按时间rhfm7lfc1#
我们在EMR集群上使用通过Pandas UDF调用的自定义Python库。我们使用以下设置将所有依赖项打包到Docker镜像中,然后由EMR使用:https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-docker.html
我会诚实地说,这不是最容易设置它,但现在我们有它,它的伟大。首先,我们可以确保所有依赖项的版本(我们使用NumPy,Pandas,Statsmodels)在prod中与我们在dev中使用的版本相同,因此不会出现在dev中工作而不在prod中工作的情况。