在一个或多个分区上缓存数据帧是否更有效率

时间:2019-01-17 08:43:06

标签: apache-spark caching

我正在持久保存一个dataFrame,并且在spark界面中看到该数据帧已在我的7个节点中进行了分区。

我的Spark作业进行的转换具有广泛的依赖性。 强制仅在1个分区中执行缓存会更有效吗? 为了避免洗牌?

谢谢

1 个答案:

答案 0 :(得分:0)

在分区数量和并发性之间保持平衡。我敢说,您在这里有点不高兴。含义:

  • 过多的分区没有意义->过多的开销。

  • 仅一个分区就意味着合并或重新分区,并且缺少对Spark提供的内容进行并行处理以更快地完成工作的信息,例如在超市货架上平行装载的许多工人比您和我自己做的要快。

  • 事实是,分区的数量介于两者之间,需要大规模评估和试用,除非将分区基于从HDFS / Hadoop资料中读取的内容,否则几乎无法避免改组(例如KUDU)或S3,或来自JDBC。