scala 使用spark.sql.函数是否被认为是函数式编程

pkbketx9  于 2023-03-02  发布在  Scala
关注(0)|答案(1)|浏览(110)

我想知道在使用scala和spark的情况下函数式编程到底是什么,如果我使用spark.sql.functions库中的函数,处理不可变数据沿着将代码分离成不同的函数,而这些函数没有其他副作用,这会被认为是函数式编程吗?
例如,我是否应该采用不同的方法来计算每年的销售额,或者下面的方法是否令人满意

def salesPerYear(sales: Dataset[Sale]): Dataset[Row] =
    sales.groupBy("Year").count()
lb3vh1jj

lb3vh1jj1#

在Apache Spark中使用spark.sql.functions模块不一定被认为是纯函数式编程,而是包含一些函数式编程概念。
但是,使用Spark通常允许您使用一些函数式编程技巧。例如,Spark DataFrame和Spark SQL使用不可变的数据模型,应用于DataFrame或SQL查询的转换返回新的DataFrame或查询对象,而不是修改原始对象。这种方法与函数式编程的不可变概念一致。
因此,虽然spark.sql.functions不是纯函数式编程,但Spark通常允许您使用一些函数式编程概念,并且可以在函数式编程风格中使用。

相关问题