`import pyspark`可在Jupyter中使用,但不适用于python shell / script

时间:2018-10-30 02:10:34

标签: python pyspark jupyter-notebook

我正在尝试将pyspark笔记本中的jupyter代码迁移到python脚本。但是,当我尝试使用

from pyspark.sql import SparkSession

我遇到了一个错误No module named 'pyspark'

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

  • 当我尝试使用import findspark / python3 python2时,我得到了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),它运行良好。

1 个答案:

答案 0 :(得分:1)

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

import sys
print(sys.executable)

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

这是一个简短的bash脚本,说明如何在Ubuntu 16.10下将pyspark手动添加到现有的jupyter内核:link