我试图将此代码作为python脚本运行
import findspark
findspark.init()
from pyspark import SparkContext
sc = SparkContext('local')
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['POST']) #can set first param to '/'
def toyFunction():
return 'HELLO WORLD'
if __name__ == '__main_':
app.run(port=8080) #note set to 8080!
然后出现了什么。
D:\ opt \ spark \ spark-2.2.0-bin-hadoop2.7> python app.py使用Spark的 默认log4j配置文件:org / apache / spark / log4j-defaults.properties 将默认日志级别设置为“WARN”。调整日志记录级别使用 sc.setLogLevel(newLevel)。对于SparkR,请使用setLogLevel(newLevel)。 18/03/21 14:28:25 WARN NativeCodeLoader:无法加载native-hadoop 适合您平台的库...使用builtin-java类在哪里 适用
D:\ opt \ spark \ spark-2.2.0-bin-hadoop2.7>成功:带PID的过程 7656(PID 3876的子进程)已终止。成功: PID 3876(PID 4436的子过程)的过程已经完成 已终止。成功:PID 4436的进程(PID的子进程) 1148)已被终止。
任何解决方案?
我还在帖子How to run a script in PySpark
中读到从Spark 2.0开始,不支持通过pyspark运行python应用程序。我使用的是2.2.0。其中一个解决方案是另一个人
pyspark 2.0及更高版本在环境变量PYTHONSTARTUP中执行脚本文件,因此您可以运行:
PYTHONSTARTUP=code.py pyspark
与spark-submit答案相比,这对于在使用交互式pyspark shell之前运行初始化代码很有用。
但我不明白该怎么做?谁能指导我?谢谢