问题的根源很可能是广播成本。为了简单起见,假设您在较大的RDD中有1800MB,在较小的RDD中有300MB。假设有5个执行者并且没有以前的分区,则所有数据的五分之一应该已经在正确的机器上。在标准连接的情况下,它剩下约1700MB的空间用于改组。
为了进行广播连接,必须将较小的RDD传输到所有节点。这意味着大约有1500MB的数据要传输。如果添加了与驱动程序的必需通信,则意味着必须以昂贵得多的方式移动相当数量的数据。必须首先收集广播的数据,然后才能将其转发给所有工作人员。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)