Github user cloud-fan commented on a diff in the pull request:
https://github.com/apache/spark/pull/20171#discussion_r160583088
--- Diff: python/pyspark/sql/tests.py ---
@@ -3616,6 +3616,34 @@ def test_vectorized_udf_basic(self):
bool_f(col('bool')))
self.assertEquals(df.collect(), res.collect())
+ def test_register_vectorized_udf_basic(self):
+ from pyspark.sql.functions import pandas_udf
+ from pyspark.rdd import PythonEvalType
+ twoArgsPandasUDF = pandas_udf(lambda x: len(x), IntegerType())
+ self.assertEqual(twoArgsPandasUDF.deterministic, True)
+ self.assertEqual(twoArgsPandasUDF.evalType,
PythonEvalType.SQL_PANDAS_SCALAR_UDF)
+ newPandasUDF = self.spark.catalog.registerFunction(
+ "twoArgsPandasUDF", twoArgsPandasUDF, IntegerType())
+ self.assertEqual(newPandasUDF.deterministic, True)
+ self.assertEqual(newPandasUDF.evalType,
PythonEvalType.SQL_PANDAS_SCALAR_UDF)
+ [row] = self.spark.sql("SELECT twoArgsPandasUDF('test')").collect()
+ self.assertEqual(row[0], 4)
+
+ def test_register_nondeterministic_vectorized_udf_basic(self):
+ from pyspark.sql.functions import pandas_udf
+ from pyspark.rdd import PythonEvalType
+ import random
+ randomPandasUDF = pandas_udf(
+ lambda x: random.randint(6, 6) + x,
StringType()).asNondeterministic()
--- End diff --
sounds good.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]