我想知道在使用scala和spark的情况下函数式编程到底是什么,如果我使用spark.sql.functions库中的函数,处理不可变数据沿着将代码分离成不同的函数,而这些函数没有其他副作用,这会被认为是函数式编程吗?例如,我是否应该采用不同的方法来计算每年的销售额,或者下面的方法是否令人满意
def salesPerYear(sales: Dataset[Sale]): Dataset[Row] = sales.groupBy("Year").count()
lb3vh1jj1#
在Apache Spark中使用spark.sql.functions模块不一定被认为是纯函数式编程,而是包含一些函数式编程概念。但是,使用Spark通常允许您使用一些函数式编程技巧。例如,Spark DataFrame和Spark SQL使用不可变的数据模型,应用于DataFrame或SQL查询的转换返回新的DataFrame或查询对象,而不是修改原始对象。这种方法与函数式编程的不可变概念一致。因此,虽然spark.sql.functions不是纯函数式编程,但Spark通常允许您使用一些函数式编程概念,并且可以在函数式编程风格中使用。
spark.sql.functions
1条答案
按热度按时间lb3vh1jj1#
在Apache Spark中使用
spark.sql.functions
模块不一定被认为是纯函数式编程,而是包含一些函数式编程概念。但是,使用Spark通常允许您使用一些函数式编程技巧。例如,Spark DataFrame和Spark SQL使用不可变的数据模型,应用于DataFrame或SQL查询的转换返回新的DataFrame或查询对象,而不是修改原始对象。这种方法与函数式编程的不可变概念一致。
因此,虽然
spark.sql.functions
不是纯函数式编程,但Spark通常允许您使用一些函数式编程概念,并且可以在函数式编程风格中使用。