问题
尝试合并两个大表,从表二投取选定列和从表二投取所有列
尽管总尺寸超出定值spark.sql.autoBroadcastJoinThreshold,BroadcastHashJoinApachespark返回OutOfMemorySparkException报错
maxResultSize=1073741824spark.sql.autbroadcastJointhresworld=-1
因果
这是因为Spark大小估计器受限
如果估计数据Frames小于autoBroadcastJoinThreshold,spark可能使用BroadcastHashJoin执行合并如果可用节点没有足够资源适应播送DataFrame,你的工作因内存错误失效
求解
有三种不同方法来缓解这一问题