【发布时间】:2020-02-05 15:31:14
【问题描述】:
我有一个简单的 pyspark 应用程序正在运行,但我想运行它的 egg 可分发文件,而不是管理大量 .py 文件。作为一个启动应用程序,它只读取一个文件并显示它。
项目层次结构如下:
DisplayStats
|
|__ src
| |___ displayStats.py
| |___ __init__.py
|
|__ __main__.py
|__ setup.py
main.py的代码:
from src import displayStats
if __name__ == '__main__':
displayStats.showStats()
displayStats.py 代码:
from pyspark.sql import SparkSession
spark = SparkSession.builder
.master("local")
.appName("gill")
.getOrCreate()
df= spark.read.load('rootPath/fileName.csv', format='csv', header='true')
df.show()
setup.py 代码:
setup(name='displayStats',
version='0.0.1',
description='A sample PySpark application',
author='Bilal',
py_moudles=['__main__']
packages=['src'],
zip_safe=False)
使用以下方法制作鸡蛋:
python setup.py bdist_egg
我得到了这个单一的鸡蛋文件:
displayStats-0.0.1-py2.7.egg
现在我想 spark-submit 这个 egg 文件,我尝试了这两个命令:
1) spark-submit --master local displayStats-0.0.1-py2.7.egg
I get this exception:
Exception in thread "main" org.apache.spark.SparkException: Cannot load main class from JAR file:/D:/displayStats/dist/displayStats-0.0.1-py2.7.egg
如果我在命令中给出 Main class Name (我认为 Main class Name 只有在我们有 scala 或 java 项目时才需要,因为我没有 class in 主.py):
2) spark-submit --master local --class __main__ gill-0.0.1-py2.7.egg
Command Prompt shows these 4 warnings but job is not submitted:
19/10/08 15:34:19 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
log4j:WARN No appenders could be found for logger (org.apache.spark.deploy.SparkSubmit$$anon$2).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
请在这种情况下指导我,如果我压缩它们,我可以运行工作,但我想运行 egg 文件。我在网上没有找到任何解决方案。
谢谢。
【问题讨论】:
标签: python-2.7 apache-spark pyspark egg