我是Spark初学者。我正在使用Python和Spark数据帧。我刚刚了解了用户定义的函数(udf),必须首先注册才能使用它。 问题:你想在什么情况下创建一个udf而不仅仅是一个简单的(Python)函数?
非常感谢你!
答案 0 :(得分:1)
如果您使用UDF,您的代码将更整洁,因为它将采用一个函数和正确的返回类型(默认为字符串,如果为空),并创建一个列表达式,这意味着您可以编写好的东西,如:
my_function_udf = udf(my_function, DoubleType())
myDf.withColumn("function_output_column", my_function_udf("some_input_column"))
这只是如何使用UDF将函数视为列的一个示例。它们还可以通过闭包很容易地将列表或映射等内容引入到函数逻辑中,这很好地解释了here