尝试使用更多分区,每个cpu应该有2-4个分区。IME增加分区数量通常是使程序更稳定(通常更快)的最简单方法。
默认情况下,我认为您的代码将使用24个分区,但是对于50 GB的数据而言,这太少了。我会尝试至少几个分区。
接下来,您要使用SPARK_MEM=5g
每个节点有7.5 GB的空间,因此最好也有SPARK_MEM=7500m
。
一般要点:为您的文件而不是s3使用HDFS,速度要快得多。确保在缓存数据之前适当地调整数据- 例如,如果您说有100列的TSV数据,但仅使用了10个字段,那么在尝试缓存之前,请确保已提取这些字段。