This is an automated email from the ASF dual-hosted git repository.

ruifengz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new ea8b1392d84 [SPARK-46284][PYTHON][CONNECT] Add `session_user` function 
to Python
ea8b1392d84 is described below

commit ea8b1392d84757cdab03e40c2c3efea1d8ef3c82
Author: Ruifeng Zheng <ruife...@apache.org>
AuthorDate: Wed Dec 6 18:30:44 2023 +0800

    [SPARK-46284][PYTHON][CONNECT] Add `session_user` function to Python
    
    ### What changes were proposed in this pull request?
    `session_user` function was added in Scala in 
https://github.com/apache/spark/pull/42549, this PR adds it to Python
    
    ### Why are the changes needed?
    for parity
    
    ### Does this PR introduce _any_ user-facing change?
    yes
    ```
        >>> import pyspark.sql.functions as sf
        >>> spark.range(1).select(sf.session_user()).show() # doctest: +SKIP
        +--------------+
        |current_user()|
        +--------------+
        | ruifeng.zheng|
        +--------------+
    ```
    
    ### How was this patch tested?
    ci
    
    ### Was this patch authored or co-authored using generative AI tooling?
    no
    
    Closes #44205 from zhengruifeng/connect_session_user.
    
    Authored-by: Ruifeng Zheng <ruife...@apache.org>
    Signed-off-by: Ruifeng Zheng <ruife...@apache.org>
---
 .../docs/source/reference/pyspark.sql/functions.rst   |  1 +
 python/pyspark/sql/connect/functions/builtin.py       |  7 +++++++
 python/pyspark/sql/functions/builtin.py               | 19 +++++++++++++++++++
 python/pyspark/sql/tests/test_functions.py            |  1 -
 4 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/python/docs/source/reference/pyspark.sql/functions.rst 
b/python/docs/source/reference/pyspark.sql/functions.rst
index 3b6a55a2a6f..d1dba5f2bed 100644
--- a/python/docs/source/reference/pyspark.sql/functions.rst
+++ b/python/docs/source/reference/pyspark.sql/functions.rst
@@ -585,6 +585,7 @@ Misc Functions
     monotonically_increasing_id
     raise_error
     reflect
+    session_user
     spark_partition_id
     try_aes_decrypt
     try_reflect
diff --git a/python/pyspark/sql/connect/functions/builtin.py 
b/python/pyspark/sql/connect/functions/builtin.py
index 882fbbccf63..48a7a223e6e 100644
--- a/python/pyspark/sql/connect/functions/builtin.py
+++ b/python/pyspark/sql/connect/functions/builtin.py
@@ -3613,6 +3613,13 @@ def user() -> Column:
 user.__doc__ = pysparkfuncs.user.__doc__
 
 
+def session_user() -> Column:
+    return _invoke_function("session_user")
+
+
+session_user.__doc__ = pysparkfuncs.session_user.__doc__
+
+
 def assert_true(col: "ColumnOrName", errMsg: Optional[Union[Column, str]] = 
None) -> Column:
     if errMsg is None:
         return _invoke_function_over_columns("assert_true", col)
diff --git a/python/pyspark/sql/functions/builtin.py 
b/python/pyspark/sql/functions/builtin.py
index ac237f10c2e..87ae84c4e2d 100644
--- a/python/pyspark/sql/functions/builtin.py
+++ b/python/pyspark/sql/functions/builtin.py
@@ -8914,6 +8914,25 @@ def user() -> Column:
     return _invoke_function("user")
 
 
+@_try_remote_functions
+def session_user() -> Column:
+    """Returns the user name of current execution context.
+
+    .. versionadded:: 4.0.0
+
+    Examples
+    --------
+    >>> import pyspark.sql.functions as sf
+    >>> spark.range(1).select(sf.session_user()).show() # doctest: +SKIP
+    +--------------+
+    |current_user()|
+    +--------------+
+    | ruifeng.zheng|
+    +--------------+
+    """
+    return _invoke_function("session_user")
+
+
 @_try_remote_functions
 def crc32(col: "ColumnOrName") -> Column:
     """
diff --git a/python/pyspark/sql/tests/test_functions.py 
b/python/pyspark/sql/tests/test_functions.py
index 7d8acbb2b18..2bdcfa6085f 100644
--- a/python/pyspark/sql/tests/test_functions.py
+++ b/python/pyspark/sql/tests/test_functions.py
@@ -66,7 +66,6 @@ class FunctionsTestsMixin:
             "random",  # namespace conflict with python built-in module
             "uuid",  # namespace conflict with python built-in module
             "chr",  # namespace conflict with python built-in function
-            "session_user",  # Scala only for now, needs implementation
             "partitioning$",  # partitioning expressions for DSv2
         ]
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to