我正在持久保存一个dataFrame,并且在spark界面中看到该数据帧已在我的7个节点中进行了分区。
我的Spark作业进行的转换具有广泛的依赖性。 强制仅在1个分区中执行缓存会更有效吗? 为了避免洗牌?
谢谢
答案 0 :(得分:0)
在分区数量和并发性之间保持平衡。我敢说,您在这里有点不高兴。含义:
过多的分区没有意义->过多的开销。
仅一个分区就意味着合并或重新分区,并且缺少对Spark提供的内容进行并行处理以更快地完成工作的信息,例如在超市货架上平行装载的许多工人比您和我自己做的要快。
事实是,分区的数量介于两者之间,需要大规模评估和试用,除非将分区基于从HDFS / Hadoop资料中读取的内容,否则几乎无法避免改组(例如KUDU)或S3,或来自JDBC。