如何解决Apache Spark中的偏斜和输出文件大小

时间:2019-06-08 17:04:10

标签: scala apache-spark parquet

当我尝试加入2个数据集时,我遇到了偏度问题。数据分区之一(我要执行连接操作的列)比其他分区有偏斜,因此,最终输出零件文件之一比其他输出零件文件大40倍。 我正在使用Scala, Apache spark进行计算,使用的文件格式为parquet

所以我正在寻找2种解决方案:

  • 首先是我该如何解决由于处理时间而产生的偏斜 歪斜的数据需要大量时间。 (对于偏斜的数据,我尝试了“广播”,但没有帮助)
  • 第二步是如何存储所有最终输出零件文件 在256 MB范围内。我尝试过一个物业 spark.sql.files.maxPartitionBytes = 268435456但它没有任何作用 差异。

谢谢

1 个答案:

答案 0 :(得分:0)

倾斜度是处理数据时的常见问题。 为了解决这个问题,存在一种称为盐腌的技术。

首先,您可以签出this video by Ted Malaska以获得有关加盐的直觉。

第二,检查his repository这个主题。

我认为每个偏度问题都有自己的解决方法。 希望这些材料能对您有所帮助。