@@ -56,7 +56,8 @@ def _create_udf(f, returnType, evalType):
5656 )
5757
5858 # Set the name of the UserDefinedFunction object to be the name of function f
59- udf_obj = UserDefinedFunction (f , returnType = returnType , name = None , evalType = evalType )
59+ udf_obj = UserDefinedFunction (
60+ f , returnType = returnType , name = None , evalType = evalType , deterministic = True )
6061 return udf_obj ._wrapped ()
6162
6263
@@ -67,7 +68,8 @@ class UserDefinedFunction(object):
6768 .. versionadded:: 1.3
6869 """
6970 def __init__ (self , func ,
70- returnType = StringType (), name = None ,
71+ returnType = StringType (),
72+ name = None ,
7173 evalType = PythonEvalType .SQL_BATCHED_UDF ,
7274 deterministic = True ):
7375 if not callable (func ):
@@ -164,7 +166,7 @@ def wrapper(*args):
164166 wrapper .returnType = self .returnType
165167 wrapper .evalType = self .evalType
166168 wrapper .deterministic = self .deterministic
167- wrapper .asNondeterministic = self .asNondeterministic
169+ wrapper .asNondeterministic = lambda : self .asNondeterministic (). _wrapped ()
168170
169171 return wrapper
170172
@@ -175,4 +177,4 @@ def asNondeterministic(self):
175177 .. versionadded:: 2.3
176178 """
177179 self .deterministic = False
178- return self . _wrapped ()
180+ return self
0 commit comments