【发布时间】:2021-12-24 16:46:56
【问题描述】:
尝试将 udf 应用于基于某些条件进行模型预测的大型 csv 文件,但由于某种原因,该模型被多次加载。以下是流程的示例 sn-p:
# main.py loads predict.py
from predict import predict_udf
data = spark.read("csv_path")
data.show()
| Column1 | Column2 |
| -------- | ------- |
| Class1 | |
| Class2 | |
data.withColumn("Column2",predict_udf(col("Column1"))
# predict.py
model = load_model() # Initialising model object
def predict(class_name):
if class_name == "Class1":
# Do something
elif class_name == "Class2":
# Do something else
predict_udf = udf(predict, StringType())
理想情况下,我希望模型被加载一次,因为它被定义为全局变量,但模型被多次加载。
【问题讨论】:
标签: apache-spark pyspark bigdata data-science user-defined-functions