In a spark cluster of 6 executors, we have 48GB RAM and 6 cores per executor. As part of a optimization of a join between 2 tables, what should be the optimal size of the small table which should be used as part of a broadcast join? Is there a specific formula which can be used to derive the size?