首页 > 解决方案 > 使用 pandas udf 创建 Pyspark 文件

问题描述

拥有两台服务器的 pyspark 集群 111.123.23.224(master), 111.123.34.234(worker) 在 pandas udf 函数中训练后尝试创建一个临时泡菜文件来存储我的模型。但是泡菜有时是在主服务器中创建的,有时是在工作服务器中创建的。我应该怎么做才能让我的pickle文件总是在master或worker中创建这是我正在尝试的以下代码

@pandas_udf(schema, functionType=pandasUDFType.GROUPED_MAP) def train_model(df_pandas):

model=NearestNeighbours(number_neighbours=5).fit(df_pandas)
file=open("/tmp/model.pkl", "wb")
pickle.dump(model, file)
file.close()

df.groupBY("id").apply(train_model)

但是上面的 model.pkl 文件有时在 111.123.23.224(master) 中创建,有时在 111.123.34.234(worker) 中创建。什么是解决方案,以便我的 model.pkl 文件将始终在 master 或 slave 中创建

标签: python-3.xpysparkapache-spark-sqluser-defined-functionspyarrow

解决方案


推荐阅读