我正在创建一个本质上是模块化的pyspark应用程序。我的代码结构如下:
├── main.py
├── src
│ ├── __init__.py
│ ├── jobs
│ │ ├── __init__.py
│ │ └── logic.py
│ └── utils
│ ├── __init__.py
│ └── utility.py
我已经设置了完全分布式的spark模式来处理大数据处理。
conf = SparkConf().setMaster(local_settings.SPARK_MASTER).setAppName(app_name) \
.set("spark.cores.max", max_cores)
我的启动脚本是main.py,我的项目由Pycharm运行,因为我想调试背后的逻辑或轻松查看变量。
在spark-submit
中,我们可以为其他模块添加--py-files
。
但是,当我在Pycharm中运行main.py时,工作人员会遇到关于
ModuleNotFoundError: No module named 'src'
在Pycharm中,我在下面设置了env变量。
PYTHONUNBUFFERED=1;PYSPARK_PYTHON=/usr/bin/python3.6;PYSPARK_DRIVER_PYTHON=/usr/bin/python3.6;PYTHONPATH=/usr/local/project/spark_project:$PYTHONPATH;SPARK_HOME=/usr/local/spark
即使我将项目路径添加到PYTHONPATH,也仍然找不到我的“ src”模块。
使用Pycharm时是否可以添加其他模块。