小编mar*_*cus的帖子

为什么 Pandas UDF 没有被并行化?

我有来自许多物联网传感器的数据。对于每个特定的传感器,数据帧中只有大约 100 行:数据没有倾斜。我正在为每个传感器训练一个单独的机器学习模型。

我正在pandas udf成功地使用并行训练和记录不同模型的 mlflow 指标(据说),如这里所教。

在 Azure 上使用 Databricks 和单节点集群(Standard_DS3_v2 - 14GB 内存 - 4 核)我能够在大约 23分钟内完成所有训练。

因为pandas udf,据说,为每个组并行计算,我认为我可以通过使用具有更多内核的单节点集群或使用具有更多工作人员的集群更快地完成训练。所以我尝试运行相同的笔记本:

  1. 一组计算机:1 个 master + 3 个 worker,全部(Standard_DS3_v2 - 14GB 内存 - 4 核)
  2. 具有(Standard_DS5_v2 - 56GB 内存 - 16 核)的单节点集群

对于我惊讶的是,训练时间没有减少:23分钟的选项1,然后26.5min选项2

我尝试使用较新的 applyInPandas,但结果大致相同。

注意:@Chris 回答后,查看 Web UI 上的 Stage Detail 页面(对于具有 1 个 master + 3 个 worker 的集群),我看到我只有一个 stage 负责 udf pandas 培训。花了 20 …

python apache-spark pyspark databricks azure-databricks

5
推荐指数
1
解决办法
344
查看次数