如何创建一个python鸡蛋?然后提交

xghobddn  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(162)

我一定是做了一个错误的假设,因为我没有找到解决这个问题的方法。我想提交一个.egg文件,应该是: spark-submit --py-files mypkg.egg main.py argv1 argv2 ,只需要.egg文件。但当我执行这个时,我得到:

python: can't open file 'C:/Users/israel/Desktop/spark_python_maven/main.py': [Errno 2] No such file or directory

研究之后,我设置了一个文件夹结构,一个init.py文件,并将path/to/main.py添加到spark submit中,然后错误变为:

File "C:/Users/israel/Desktop/spark_python_maven/src/mypkg/main.py", line 3, in <module>
    from src.mypkg.data_layer import *
ModuleNotFoundError: No module named 'src'

我找到的唯一方法是删除init.py并将路径设置为main.py和其他.py文件,所以当我希望只需要.egg文件时,我需要.egg和.py文件。
我的主要目标是:

import os
import sys
from src.mypkg.data_layer import *
from pyspark.sql import SparkSession

if __name__ == "__main__" :

    print("hello world!")

我的setup.py看起来像:

from setuptools import setup, find_packages

setup(
    name='mypkg',
    version='0.1',
    packages = find_packages('src'),  # include all packages under src
    package_dir = {'':'src'}   # tell distutils packages are under src
)

我的init.py看起来像:

from src.mypkg import *
from .mypkg import *

我的项目结构如下所示:

其中setup.py与src处于同一级别,init.py与mypkg处于同一级别。
我要做的是创建一个.egg文件,它包含了我所需要的所有东西,可以通过argvs进行提交。我做错什么了?
提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题