'import pyspark' 在 Jupyter 中工作,但不适用于 python shell/script



我正在尝试将pyspark代码从jupyter笔记本迁移到python脚本。然而,当我尝试使用时

from pyspark.sql import SparkSession

我有一个错误No module named 'pyspark'

  • 我试图在系统中找到所有python3python2,将它们作为shell运行,并尝试在每个shell中导入pyspark。然而,我在每个外壳中都有相同的No module named 'pyspark'

  • 当我用python3/python2尝试import findspark时,我得到了No module named 'findspark'

  • echo $PYTHONPATHecho $SPARK_HOME返回空字符串
  • 我已经尝试找到所有的spark-submit,并使用它们而不是python3运行我的脚本。然而,我在argparse使用时遇到了一个错误

    File "/export/home/osvechkarenko/brdmp_10947/automation_001/py_dynamic_report.py", line 206
    if args.print:
    ^
    SyntaxError: invalid syntax
    

    当我在python3(没有pyspark(中使用我的脚本时,它运行得很好。

首先,通过:确保jupyter和shell的python解释器相同

import sys
print(sys.executable)

如果是这样的话,您的jupyter内核会在启动时将pyspark添加到python路径中。正如@Sraw所指出的,您可以通过pyspark.__file__在您的工作环境中定位pyspark。

以下是一个简短的bash脚本,介绍如何在Ubuntu 16.10下手动将pyspark添加到现有的jupyter内核:链接

最新更新