我有3个输入文件File1-27 GB文件2-3 GB文件3-12MB
我的集群配置2执行器每个执行器都有2核执行器内存-13 GB(2 GB开销)
我要执行的转换是LEFT JOIN,其中左边的表是文件1,右边的表是文件2和文件3
我需要将文件1和文件2重新分区为最佳数量的分区,这样才不会浪费时间/资源。
提前谢谢你
e4yzc0pl1#
您没有编写任何其他转换,所以我假设您想要创建非常简单的作业,该作业只执行这一个连接
你不是在问文件3,所以我假设你会用提示来播放它,这是一个很好的方向。
如果您在此连接之前没有做任何事情,我不确定是否值得对file1/File2进行重新分区,因为它们最有可能将与SMJ连接(排序合并连接-其基于连接条件中的列对两个数据集进行混洗),并且此连接的输出DF的分区数将等于spk.sql.shffle.artitions,因此您可以尝试调整此参数(这也会影响其他混洗,因此请记住我从第一行开始的假设)。
您可以尝试将此参数调整为更大的数据集(文件1),以创建大约100-200MB的分区。我认为值得阅读这篇博客文章:Medium blog post
1条答案
按热度按时间e4yzc0pl1#
您没有编写任何其他转换,所以我假设您想要创建非常简单的作业,该作业只执行这一个连接
你不是在问文件3,所以我假设你会用提示来播放它,这是一个很好的方向。
如果您在此连接之前没有做任何事情,我不确定是否值得对file1/File2进行重新分区,因为它们最有可能将与SMJ连接(排序合并连接-其基于连接条件中的列对两个数据集进行混洗),并且此连接的输出DF的分区数将等于spk.sql.shffle.artitions,因此您可以尝试调整此参数(这也会影响其他混洗,因此请记住我从第一行开始的假设)。
您可以尝试将此参数调整为更大的数据集(文件1),以创建大约100-200MB的分区。我认为值得阅读这篇博客文章:Medium blog post