我想在pyspark中使用matplotlib.bblpath或shapely.geometry库。
当我尝试导入其中任何一个时,会出现以下错误:
>>> from shapely.geometry import polygon
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named shapely.geometry
我知道模块不存在,但是如何将这些包带到我的pyspark库中?
在Spark上下文中,尝试使用:
,引用docs:
这就是我在AWS EMR集群中工作的方式(在其他集群中也应该是相同的)。我创建了以下shell脚本并将其作为引导操作执行:
注意:此脚本可以在群集中的每个节点中独立执行,而不是作为引导操作运行。我已经测试了两种情况。
下面是一个示例pyspark和shapely代码(Spark SQL UDF),以确保上述命令按预期工作:
谢谢, 侯赛因·博赫拉
这是独立的(即笔记本电脑/台式机)还是集群环境(如AWS EMR)?
如果在笔记本电脑/台式机上,
pip install shapely
应该可以正常工作。您可能需要检查默认python环境的环境变量。例如,如果您通常使用Python 3,但对pyspark使用Python 2,那么pyspark将无法使用shapely。如果在集群环境(如AWS EMR)中,您可以尝试:
“我知道模块不存在,但我想知道如何将这些包带到我的pyspark库中。”
在EMR上,如果您希望pyspark预先准备好任何其他库和配置,可以使用引导步骤进行这些调整。除此之外,如果不在Scala中编译Spark,就不能将库“添加”到pyspark(如果不熟悉SBT,这将是一件痛苦的事情)。
相关问题 更多 >
编程相关推荐