【发布时间】:2018-11-14 12:05:49
【问题描述】:
当我的 Flask+PySpark 应用程序有一个带有@udf 或@pandas_udf 注解的函数时,它不会启动。如果我只是删除注释,它就会启动。 如果我尝试使用 Flask 启动我的应用程序,则会执行脚本的第一遍词法解释。例如,调试器在导入行停止,例如 从 pyspark.sql.functions 导入 pandas_udf、udf、PandasUDFType .然而,根本没有执行任何语句,包括最初的 app = Flask(name) 语句。 (会不会是某种隐藏的异常?) 如果我在没有 Flask 的情况下启动我的应用程序,使用相同的确切功能和相同的导入,它确实可以工作。
这些是进口:
from pyspark.sql import SQLContext
from pyspark.sql import SparkSession
from pyspark.sql.functions import pandas_udf, udf, PandasUDFType
import pandas as pd
这是函数:
@pandas_udf('string', PandasUDFType.SCALAR)
def pandas_not_null(s):
return s.fillna("_NO_NA_").replace('', '_NO_E_')
这是当 @pandas_udf 存在时不执行的语句:
app = Flask(__name__)
这就是 IntelliJ 启动 Flask 的方式:
FLASK_APP = app
FLASK_ENV = development
FLASK_DEBUG = 1
In folder /Users/vivaomengao/projects/dive-platform/cat-intel/divecatintel
/Users/vivaomengao/anaconda/bin/python /Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py --module --multiproc --qt-support=auto --client 127.0.0.1 --port 56486 --file flask run
我在自己的电脑上运行 MacOS。
【问题讨论】: