Jupyter pyspark:没有名为 pyspark 的模块

新手上路,请多包涵

谷歌确实有很多解决这个问题的方法,但不幸的是,即使在尝试了所有的可能性之后,我也无法让它工作,所以请耐心等待,看看是否有什么让你印象深刻。

操作系统:MAC

火花:1.6.3 (2.10)

木星笔记本:4.4.0

蟒蛇:2.7

斯卡拉:2.12.1

我能够成功安装和运行 Jupyter notebook。接下来,我尝试将其配置为与 Spark 一起使用,为此我使用 Apache Toree 安装了 spark 解释器。现在,当我尝试在笔记本中运行任何 RDD 操作时,会抛出以下错误

Error from python worker:
  /usr/bin/python: No module named pyspark
PYTHONPATH was:
  /private/tmp/hadoop-xxxx/nm-local-dir/usercache/xxxx/filecache/33/spark-assembly-1.6.3-hadoop2.2.0.jar

已经尝试过的事情: 1. 在 .bash_profile 中设置 PYTHONPATH 2. 能够在本地的 python-cli 中导入“pyspark” 3. 尝试将解释器 kernel.json 更新为以下

{
  "language": "python",
  "display_name": "Apache Toree - PySpark",
  "env": {
    "__TOREE_SPARK_OPTS__": "",
    "SPARK_HOME": "/Users/xxxx/Desktop/utils/spark",
    "__TOREE_OPTS__": "",
    "DEFAULT_INTERPRETER": "PySpark",
    "PYTHONPATH": "/Users/xxxx/Desktop/utils/spark/python:/Users/xxxx/Desktop/utils/spark/python/lib/py4j-0.9-src.zip:/Users/xxxx/Desktop/utils/spark/python/lib/pyspark.zip:/Users/xxxx/Desktop/utils/spark/bin",
  "PYSPARK_SUBMIT_ARGS": "--master local --conf spark.serializer=org.apache.spark.serializer.KryoSerializer",
    "PYTHON_EXEC": "python"
  },
  "argv": [
    "/usr/local/share/jupyter/kernels/apache_toree_pyspark/bin/run.sh",
    "--profile",
    "{connection_file}"
  ]
}

  1. 甚至更新了解释器 run.sh 以显式加载 py4j-0.9-src.zip 和 pyspark.zip 文件。当打开 PySpark 笔记本并创建 SparkContext 时,我可以看到从本地上传的 spark-assembly、py4j 和 pyspark 包,但是当调用一个动作时,仍然找不到 pyspark。

原文由 Saurabh Mishra 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 568
2 个回答

使用 findspark lib 绕过所有环境设置过程。这是更多信息的链接。 https://github.com/minrk/findspark

如下使用它。

 import findspark
findspark.init('/path_to_spark/spark-x.x.x-bin-hadoopx.x')
from pyspark.sql import SparkSession

原文由 kay 发布,翻译遵循 CC BY-SA 3.0 许可协议

只需要添加:

 import os

os.environ['PYSPARK_SUBMIT_ARGS'] = 'pyspark-shell'

之后,您就可以正常使用 Pyspark 了。

原文由 Eric Bellet 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题