PySpark 执行程序库何时会与驱动程序不同?

When would PySpark executor libraries be different than the driver?

我一直在关注 this guide(对 Medium post 表示歉意),它展示了如何为您的 Spark 执行程序和驱动程序单独打包 python 环境和库。什么时候您会期望每个库都需要不同的库?我认为一个简单但具体的例子会有所帮助。

想象这样一个场景,您需要在 spark 作业完成后向用户发送电子邮件作为通知,现在发送电子邮件的特定功能将始终在驱动程序上执行。 ,因此 smtplib 和相关库需要在驱动程序上可用,因为执行者不会发送电子邮件。