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 <allison.w...@databricks.com> 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 <allison.w...@databricks.com> Co-authored-by: Hyukjin Kwon <gurwls...@gmail.com> Signed-off-by: Hyukjin Kwon <gurwls...@apache.org> --- 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: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org