我有个关于星火广播的问题。默认情况下,广播哈希连接大小为10mb。
情况1:我们在集群中有足够的内存来保存广播数据。
如果df大小大于默认的广播连接大小,比如说15 mb是df大小,并且如果我在集群中的所有节点上广播这个df,它还会执行广播连接吗?因为15mb大于默认的广播连接大小,所以即使我们广播了df,它是否也适用于任何其他连接?
情况2:集群内存不足,无法容纳广播的df。
因此,让我们假设如果我有15mb的Dataframe,如果我想在连接期间广播这个Dataframe,并且内存在一个或几个节点上不可用来保存这个数据。(15mb是一个假设的数字)它会失败而没有内存错误,还是会将数据溢出到磁盘?
1条答案
按热度按时间6ie5vjzr1#
如果您试图广播大于spark.sql.autobroadcastjointhreshold的Dataframe,spark将发出错误。
我不能用官方文件来支持它,但我不认为它会泄露到磁盘上。您需要确保驱动程序和工作程序都可以容纳完整的Dataframe。