哪个操作更快:filter或withColumn with when?

时间:2018-09-03 08:15:40

标签: performance apache-spark apache-spark-sql

哪个表现更好?

  1. filterManufacturers(event) { this.filteredManufacturers = []; for (let i = 0; i < this.manufacturers.length; i++) { let manufacturer = this.manufacturers[i].name; if (this.dontKnowHowToNameIt(manufacturer, event)) { this.filteredManufacturers.push(manufacturer); } } } filterModels(event) { this.filteredModels = []; for (let manufacturerer of this.manufacturers) { if (manufacturerer.name === this.vehicle.manufacturer) { for (let model of manufacturerer.models) { if (this.dontKnowHowToNameIt(model, event)) { this.filteredModels.push(model); } } } } } dontKnowHowToNameIt(input, event) { return (input.toLowerCase().indexOf(event.query.toLowerCase()) == 0); } 方法

    filter
  2. val df1 = df .filter('operation === true) .withColumn("operation2", lit(null)) / withColumn方法

    when

1 个答案:

答案 0 :(得分:1)

将输出中的行数放在一边(它们可能是不同的),我确定性能是相同的(或非常可比)。原因是阶段和任务之间没有相互依赖性,因此计算尽可能并行。它们都是纯地图计算。

为了更好地理解此查询和其他结构化查询,请使用explain或仅使用Web UI来查看(并比较)物理计划。