Diferença entre reduzir e foldLeft / fold na programação funcional (particularmente Scala e Scala APIs)?

Por que Scala e estruturas como Spark e Scalding têm ambosreduce efoldLeft? Então, qual é a diferença entrereduce efold?