У меня есть простое приложение pyspark, которое запущено, но я хочу запустить его распространяемое яйцо вместо управления большим количеством файлов .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
Теперь я хочу отправить этот файл с яйцом, и я попробовал эти две команды:
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Имя класса в команде (я думаю Имя основного класса требуется только в том случае, если у нас есть проект scala или java, потому что у меня нет класса в main .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.
Пожалуйста, помогите мне в этом сценарии, я могу запустить задание, если я их запишу, но хочу запустить файл яйца. Я не нашел никакого решения в сети.
Спасибо.