gpt4 book ai didi

java - Spark 性能中的 map 操作链

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:20 25 4
gpt4 key购买 nike

我的 Spark 作业包含一系列 map 操作

JavaRDD<Row> rowRDD = raw
.javaRDD()
.mapPartitions(new CustomPartitionMapper())
.map(new DataSpecialMapper(config))
.map(new CsvFormatMapper(config))
.map(new ReportCounters());

从编程的角度来看,代码更具可读性和可测试性。问题是关于性能。

映射器链是否会被 Spark 解释为一个映射器操作,并且是否会在同一个执行器中执行?如果不是,性能影响可能是什么?

谢谢

最佳答案

Will be the chain of mappers interpreted by Spark as one mapper operation and will be performed in the same executor or not?

Spark 会将多个窄转换优化为单个 stage,这意味着多个 map 任务将在同一任务伞下随后运行。 (参见 this blog post for more)

但是,您仍然要将这些分区中的每一个迭代 4 * O(n) 次,这仍然是 O(n),但在给定的输入大小下可能会影响性能,这一点始终要牢记。

关于java - Spark 性能中的 map 操作链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41618447/

25 4 0
文章推荐: java - 从 JSON 字符串确定时区?
文章推荐: java - 如何在 AWS 上定义 spring profile
文章推荐: Java8 将 [List, String] 转换为 Map