Github user HyukjinKwon commented on a diff in the pull request:
https://github.com/apache/spark/pull/20171#discussion_r161414603
--- Diff: python/pyspark/sql/context.py ---
@@ -204,15 +206,31 @@ def registerFunction(self, name, f,
returnType=StringType()):
>>> sqlContext.sql("SELECT stringLengthInt('test')").collect()
[Row(stringLengthInt(test)=4)]
+ >>> from pyspark.sql.types import IntegerType
+ >>> from pyspark.sql.functions import udf
+ >>> slen = udf(lambda s: len(s), IntegerType())
+ >>> _ = sqlContext.udf.register("slen", slen)
+ >>> sqlContext.sql("SELECT slen('test')").collect()
+ [Row(slen(test)=4)]
+
>>> import random
>>> from pyspark.sql.functions import udf
- >>> from pyspark.sql.types import IntegerType, StringType
+ >>> from pyspark.sql.types import IntegerType
>>> random_udf = udf(lambda: random.randint(0, 100),
IntegerType()).asNondeterministic()
- >>> newRandom_udf = sqlContext.registerFunction("random_udf",
random_udf, StringType())
+ >>> newRandom_udf = sqlContext.udf.register("random_udf",
random_udf)
--- End diff --
In that way, we should replace `sqlContext` to `spark`. It's for testing
purpose too as these are actually ran. Also, we should leave a note that it's
an alias for `udf.register` too with a warn from `warning` for an IDE to detect
deprecated methods and for users to see the warning. If we will just have an
exact doc, we can simply reassign `__doc__` as suggested by @ueshin and
@icexelloss. Simplest way is just to leave as was.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]