This is an automated email from the ASF dual-hosted git repository.
gurwls223 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 cf04bd93b75 [SPARK-45219][PYTHON][DOCS] Refine docstring of
withColumn(s)Renamed
cf04bd93b75 is described below
commit cf04bd93b7522975c44c54f9519bb77f7833c566
Author: allisonwang-db <[email protected]>
AuthorDate: Thu Sep 21 15:50:36 2023 +0900
[SPARK-45219][PYTHON][DOCS] Refine docstring of withColumn(s)Renamed
### What changes were proposed in this pull request?
This PR refines the docstring of `DataFrame.withColumnRenamed` and
`DataFrame.withColumnsRenamed`.
### Why are the changes needed?
To improve PySpark documentations.
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
doctest
### Was this patch authored or co-authored using generative AI tooling?
No
Closes #43019 from allisonwang-db/spark-45219-refine-withcolumnrenamed.
Lead-authored-by: allisonwang-db <[email protected]>
Co-authored-by: Hyukjin Kwon <[email protected]>
Signed-off-by: Hyukjin Kwon <[email protected]>
---
python/pyspark/sql/dataframe.py | 92 +++++++++++++++++++++++++++++++++--------
1 file changed, 74 insertions(+), 18 deletions(-)
diff --git a/python/pyspark/sql/dataframe.py b/python/pyspark/sql/dataframe.py
index 6b1a6df1618..bcdae5e40b9 100644
--- a/python/pyspark/sql/dataframe.py
+++ b/python/pyspark/sql/dataframe.py
@@ -5786,7 +5786,8 @@ class DataFrame(PandasMapOpsMixin, PandasConversionMixin):
return DataFrame(self._jdf.withColumn(colName, col._jc),
self.sparkSession)
def withColumnRenamed(self, existing: str, new: str) -> "DataFrame":
- """Returns a new :class:`DataFrame` by renaming an existing column.
+ """
+ Returns a new :class:`DataFrame` by renaming an existing column.
This is a no-op if the schema doesn't contain the given column name.
.. versionadded:: 1.3.0
@@ -5797,25 +5798,52 @@ class DataFrame(PandasMapOpsMixin,
PandasConversionMixin):
Parameters
----------
existing : str
- string, name of the existing column to rename.
+ The name of the existing column to be renamed.
new : str
- string, new name of the column.
+ The new name to be assigned to the column.
Returns
-------
:class:`DataFrame`
- DataFrame with renamed column.
+ A new DataFrame with renamed column.
+
+ See Also
+ --------
+ :meth:`withColumnsRenamed`
Examples
--------
>>> df = spark.createDataFrame([(2, "Alice"), (5, "Bob")],
schema=["age", "name"])
- >>> df.withColumnRenamed('age', 'age2').show()
+
+ Example 1: Rename a single column
+
+ >>> df.withColumnRenamed("age", "age2").show()
+----+-----+
|age2| name|
+----+-----+
| 2|Alice|
| 5| Bob|
+----+-----+
+
+ Example 2: Rename a column that does not exist (no-op)
+
+ >>> df.withColumnRenamed("non_existing", "new_name").show()
+ +---+-----+
+ |age| name|
+ +---+-----+
+ | 2|Alice|
+ | 5| Bob|
+ +---+-----+
+
+ Example 3: Rename multiple columns
+
+ >>> df.withColumnRenamed("age", "age2").withColumnRenamed("name",
"name2").show()
+ +----+-----+
+ |age2|name2|
+ +----+-----+
+ | 2|Alice|
+ | 5| Bob|
+ +----+-----+
"""
return DataFrame(self._jdf.withColumnRenamed(existing, new),
self.sparkSession)
@@ -5830,7 +5858,7 @@ class DataFrame(PandasMapOpsMixin, PandasConversionMixin):
Parameters
----------
colsMap : dict
- a dict of existing column names and corresponding desired column
names.
+ A dict of existing column names and corresponding desired column
names.
Currently, only a single map is supported.
Returns
@@ -5842,21 +5870,49 @@ class DataFrame(PandasMapOpsMixin,
PandasConversionMixin):
--------
:meth:`withColumnRenamed`
- Notes
- -----
- Support Spark Connect
-
Examples
--------
>>> df = spark.createDataFrame([(2, "Alice"), (5, "Bob")],
schema=["age", "name"])
- >>> df = df.withColumns({'age2': df.age + 2, 'age3': df.age + 3})
- >>> df.withColumnsRenamed({'age2': 'age4', 'age3': 'age5'}).show()
- +---+-----+----+----+
- |age| name|age4|age5|
- +---+-----+----+----+
- | 2|Alice| 4| 5|
- | 5| Bob| 7| 8|
- +---+-----+----+----+
+
+ Example 1: Rename a single column
+
+ >>> df.withColumnsRenamed({"age": "age2"}).show()
+ +----+-----+
+ |age2| name|
+ +----+-----+
+ | 2|Alice|
+ | 5| Bob|
+ +----+-----+
+
+ Example 2: Rename multiple columns
+
+ >>> df.withColumnsRenamed({"age": "age2", "name": "name2"}).show()
+ +----+-----+
+ |age2|name2|
+ +----+-----+
+ | 2|Alice|
+ | 5| Bob|
+ +----+-----+
+
+ Example 3: Rename non-existing column (no-op)
+
+ >>> df.withColumnsRenamed({"non_existing": "new_name"}).show()
+ +---+-----+
+ |age| name|
+ +---+-----+
+ | 2|Alice|
+ | 5| Bob|
+ +---+-----+
+
+ Example 4: Rename with an empty dictionary (no-op)
+
+ >>> df.withColumnsRenamed({}).show()
+ +---+-----+
+ |age| name|
+ +---+-----+
+ | 2|Alice|
+ | 5| Bob|
+ +---+-----+
"""
if not isinstance(colsMap, dict):
raise PySparkTypeError(
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]