numpy - spark-submitting 时没有名为 numpy 的模块

标签 numpy apache-spark pyspark

我正在提交一个导入 numpy 的 python 文件,但我得到一个 no module named numpy错误。

$ spark-submit --py-files projects/other_requirements.egg projects/jobs/my_numpy_als.py
Traceback (most recent call last):
  File "/usr/local/www/my_numpy_als.py", line 13, in <module>
    from pyspark.mllib.recommendation import ALS
  File "/usr/lib/spark/python/pyspark/mllib/__init__.py", line 24, in <module>
    import numpy
ImportError: No module named numpy

我在想我会为 numpy-python-files 拉一个鸡蛋,但我在弄清楚如何构建那个鸡蛋时遇到了麻烦。但后来我突然想到 pyspark 本身使用 numpy。引入我自己的 numpy 版本会很愚蠢。

对在这里做适当的事情有任何想法吗?

最佳答案

我通过配置一个包含以下内容(除其他外)的小型引导脚本在所有 emr 节点上安装 numpy 来实现这一点。
#!/bin/bash -xe sudo yum install python-numpy python-scipy -y
然后通过将以下选项添加到 aws emr 命令来配置要在启动集群时执行的引导脚本(以下示例为引导脚本提供了一个参数)
--bootstrap-actions Path=s3://some-bucket/keylocation/bootstrap.sh,Name=setup_dependencies,Args=[s3://some-bucket]
这也可以在从 DataPipeline 自动设置集群时使用。

关于numpy - spark-submitting 时没有名为 numpy 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449271/

相关文章:

python - 在python中生成一个范围内的N个正整数加起来等于总数

python - 在 Plotly-Dash 中使用 dcc.Graph 显示图像

java - 将 python lambda 转换为 scala 或 java。使用 py4j 可以吗?

java - 如何通过管道()按键分组的 RDD?

apache-spark - 为什么spark中的 "collect" Action 会触发驱动程序的数据收集?

python - 在 numpy 中,如何有效地列出所有固定大小的子矩阵?

python - 交错两个 numpy 1D 阵列用于立体声音频输出

java - Spark Bean 编码器正在为嵌套类映射错误的值

apache-spark - 如何以编程方式获取 Pyspark 中的日志级别

performance - RDD 中的分区数和 Spark 中的性能