python - `import pyspark` 适用于 Jupyter,但不适用于 python shell/脚本
问题描述
我正在尝试将pyspark
代码从jupyter
笔记本迁移到 python 脚本。但是,当我尝试使用
from pyspark.sql import SparkSession
我有一个错误No module named 'pyspark'
我试图找到所有
python3
并python2
在系统中,将它们作为 shell 运行并尝试pyspark
在每个 shell 中导入。但是,我No module named 'pyspark'
在每个外壳中都有相同的当我试图
import findspark
与python3
/python2
我得到No module named 'findspark'
echo $PYTHONPATH
并echo $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
)一起使用时,它运行良好。
解决方案
首先,通过以下方式确保您的 python 解释器对于 jupyter 和 shell 是相同的:
import sys
print(sys.executable)
如果是这种情况,您的 jupyter 内核还会在启动时将 pyspark 添加到 python 路径。正如@Sraw 指出的那样,您可以通过pyspark.__file__
在您的工作环境中找到 pyspark。
这是一个简短的 bash 脚本,介绍如何在 Ubuntu 16.10 下将 pyspark 手动添加到现有的 jupyter 内核:链接
推荐阅读
- javascript - 如何在html(jquery)中做动态下拉列表?
- sql - Mongodb查询问题,如何获取$or运算符的匹配项
- scala - 错误:withColumn 方法的参数不足:Scala spark
- shell - 附加到现有的 tcsh cmd 自动完成指令
- php - Wordpress 重写规则不适用于“name”,但适用于“p”
- c# - C# 等效于 Java org.json.JSONObject
- python - 使用 __getitem__ 方法赋值时出现 KeyError
- android - onTouchEvent - setter 方法不起作用,但构造函数起作用。极度困惑
- node.js - 通过 nginx 运行多个 express 应用程序,显示端口已在使用中
- php - 更改 laravel 网站的默认登录页面