Spark性能

时间:2017-01-12 16:36:59

标签: java performance apache-spark

My Spark作业包含一系列地图操作

JavaRDD<Row> rowRDD = raw
            .javaRDD()
            .mapPartitions(new CustomPartitionMapper())
            .map(new DataSpecialMapper(config))
            .map(new CsvFormatMapper(config))
            .map(new ReportCounters());
从编程的角度来看,代码更具可读性和可测试性。 问题是关于绩效。

将由Spark解释为映射器操作的映射器链是否将在同一执行器中执行?如果不是可能对性能产生什么影响?

由于

1 个答案:

答案 0 :(得分:2)

  

将Spark作为一个映射器解释为mappers的链   操作并将在同一执行人中执行?

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

但是,你仍然会迭代这些分区中的每一个4 * O(n)次,这仍然是O(n),但可能在给定的输入大小效果性能,这始终是要记住的事情。