<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Understanding Rename in Databricks Now there are multiple ways to rename Spark Data Frame Columns or Expressions. We can rename columns or expressions... in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/understanding-rename-in-databricks-now-there-are-multiple-ways/m-p/10535#M5701</link>
    <description>&lt;P&gt;Very informative, Thanks for sharing&lt;/P&gt;</description>
    <pubDate>Mon, 30 Jan 2023 12:17:21 GMT</pubDate>
    <dc:creator>Ajay-Pandey</dc:creator>
    <dc:date>2023-01-30T12:17:21Z</dc:date>
    <item>
      <title>Understanding Rename in Databricks Now there are multiple ways to rename Spark Data Frame Columns or Expressions. We can rename columns or expressions...</title>
      <link>https://community.databricks.com/t5/data-engineering/understanding-rename-in-databricks-now-there-are-multiple-ways/m-p/10534#M5700</link>
      <description>&lt;P&gt;&lt;B&gt;Understanding Rename in Databricks&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now there are multiple ways to rename Spark Data Frame Columns or Expressions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We can rename columns or expressions using alias as part of select&lt;/P&gt;&lt;P&gt;We can add or rename columns or expressions using withColumn on top of the Data Frame.&lt;/P&gt;&lt;P&gt;We can rename one column at a time using withColumnRenamed on top of the Data Frame.&lt;/P&gt;&lt;P&gt;We typically use withColumn to perform row-level transformations and then to provide a name to the result. If we give the same name as an existing column, then the column will be replaced with a new one.&lt;/P&gt;&lt;P&gt;If we want just to rename the column then it is better to use withColumnRenamed.&lt;/P&gt;&lt;P&gt;If we want to apply any transformation, we need to use select or withColumn&lt;/P&gt;&lt;P&gt;We can rename a bunch of columns using toDF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First, we will understand what is the withColumnRenamed and withColumn&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;withColumn&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;help(MyFirstDataFrame.withColumn)
&amp;nbsp;
#RESULT
&amp;nbsp;
Help on method withColumn in module pyspark.sql.dataframe:
&amp;nbsp;
withColumn(colName: str, col: pyspark.sql.column.Column) -&amp;gt; 'DataFrame' method of pyspark.sql.dataframe.DataFrame instance
    Returns a new :class:`DataFrame` by adding a column or replacing the
    existing column that has the same name.
    
    The column expression must be an expression over this :class:`DataFrame`; attempting to add
    a column from some other :class:`DataFrame` will raise an error.
    
    .. versionadded:: 1.3.0
    
    Parameters
    ----------
    colName : str
        string, name of the new column.
    col : :class:`Column`
        a :class:`Column` expression for the new column.
    
    Notes
    -----
    This method introduces a projection internally. Therefore, calling it multiple
    times, for instance, via loops in order to add multiple columns can generate big
    plans which can cause performance issues and even `StackOverflowException`.
    To avoid this, use :func:`select` with the multiple columns at once.
    
    Examples
    --------
    &amp;gt;&amp;gt;&amp;gt; df.withColumn('age2', df.age + 2).collect()
    [Row(age=2, name='Alice', age2=4), Row(age=5, name='Bob', age2=7)]&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;I&gt;withColumnRenamed&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;help(MyFirstDataFrame.withColumnRenamed)
&amp;nbsp;
#RESULT
&amp;nbsp;
Help on method withColumnRenamed in module pyspark.sql.dataframe:
&amp;nbsp;
withColumnRenamed(existing: str, new: str) -&amp;gt; 'DataFrame' method of pyspark.sql.dataframe.DataFrame instance
    Returns a new :class:`DataFrame` by renaming an existing column.
    This is a no-op if schema doesn't contain the given column name.
    
    .. versionadded:: 1.3.0
    
    Parameters
    ----------
    existing : str
        string, name of the existing column to rename.
    new : str
        string, new name of the column.
    
    Examples
    --------
    &amp;gt;&amp;gt;&amp;gt; df.withColumnRenamed('age', 'age2').collect()
    [Row(age2=2, name='Alice'), Row(age2=5, name='Bob')]&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Now we will do its Practical in our Dataframe&lt;/P&gt;&lt;P&gt;&lt;B&gt;&lt;I&gt;withColumn -We can create whole New Column&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;B&gt;&lt;I&gt;eg:withColumn(NewColumn, OldColumn)&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;MyFirstDataFrame.select('FirstName','LastName','age','city','Salary','Bonus') \
.withColumn('NewColFirstName',MyFirstDataFrame.FirstName).show()
&amp;nbsp;
#RESULT
&amp;nbsp;
+---------+--------+---+-----------+------+-----+---------------+
|FirstName|LastName|age|       city|Salary|Bonus|NewColFirstName|
+---------+--------+---+-----------+------+-----+---------------+
|      Ram|  Tiwari| 25|  Bangalore|  2000|  100|            Ram|
|    Shyam|      NC| 30|    Chennai|  3000|  300|          Shyam|
|    Rohan|    Jaki| 45|     Andhra|  1500|  150|          Rohan|
|   Ritesh|  sharma| 35|Rameshwaram|  2500|  250|         Ritesh|
+---------+--------+---+-----------+------+-----+---------------+
&amp;nbsp;
#I HAVE ADDED FORWARD SLASH for just visbility of code you can remove that
&amp;nbsp;
#Now using the []
&amp;nbsp;
MyFirstDataFrame.select('FirstName','LastName','age','city','Salary','Bonus').\
withColumn('NewColFirstName',MyFirstDataFrame['FirstName']).show()
&amp;nbsp;
#Result
+---------+--------+---+-----------+------+-----+---------------+
|FirstName|LastName|age|       city|Salary|Bonus|NewColFirstName|
+---------+--------+---+-----------+------+-----+---------------+
|      Ram|  Tiwari| 25|  Bangalore|  2000|  100|            Ram|
|    Shyam|      NC| 30|    Chennai|  3000|  300|          Shyam|
|    Rohan|    Jaki| 45|     Andhra|  1500|  150|          Rohan|
|   Ritesh|  sharma| 35|Rameshwaram|  2500|  250|         Ritesh|
+---------+--------+---+-----------+------+-----+---------------+
&amp;nbsp;
#Now i hope you understood what I am trying to say&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;B&gt;&lt;I&gt;withColumnRenamed- We can create whole New Column eg:withColumnRenamed(OldColumnName, NewName)&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;#our Old Result
MyFirstDataFrame.select("*").show()
&amp;nbsp;
+---------+--------+---+-----------+------+-----+
|FirstName|LastName|age|       city|Salary|Bonus|
+---------+--------+---+-----------+------+-----+
|      Ram|  Tiwari| 25|  Bangalore|  2000|  100|
|    Shyam|      NC| 30|    Chennai|  3000|  300|
|    Rohan|    Jaki| 45|     Andhra|  1500|  150|
|   Ritesh|  sharma| 35|Rameshwaram|  2500|  250|
+---------+--------+---+-----------+------+-----+
&amp;nbsp;
&amp;nbsp;
MyFirstDataFrame.select('FirstName','LastName','age','city','Salary','Bonus')./
withColumnRenamed('FirstName', 'UsersFirstName')./
withColumnRenamed('LastName', 'userLastName')./
withColumnRenamed('age', 'UserAge').show()
&amp;nbsp;
#Result
&amp;nbsp;
+--------------+------------+-------+-----------+------+-----+
|UsersFirstName|userLastName|UserAge|       city|Salary|Bonus|
+--------------+------------+-------+-----------+------+-----+
|           Ram|      Tiwari|     25|  Bangalore|  2000|  100|
|         Shyam|          NC|     30|    Chennai|  3000|  300|
|         Rohan|        Jaki|     45|     Andhra|  1500|  150|
|        Ritesh|      sharma|     35|Rameshwaram|  2500|  250|
+--------------+------------+-------+-----------+------+-----+&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;and Finally, we have&amp;nbsp;&lt;B&gt;an alias&lt;/B&gt;&amp;nbsp;function for changing the Column name below is the code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;#our Old Result
MyFirstDataFrame.select("*").show()
&amp;nbsp;
+---------+--------+---+-----------+------+-----+
|FirstName|LastName|age|       city|Salary|Bonus|
+---------+--------+---+-----------+------+-----+
|      Ram|  Tiwari| 25|  Bangalore|  2000|  100|
|    Shyam|      NC| 30|    Chennai|  3000|  300|
|    Rohan|    Jaki| 45|     Andhra|  1500|  150|
|   Ritesh|  sharma| 35|Rameshwaram|  2500|  250|
+---------+--------+---+-----------+------+-----+
&amp;nbsp;
MyFirstDataFrame. \
    select(
        MyFirstDataFrame['FirstName'].alias('UsersFirstName'),
        MyFirstDataFrame['LastName'].alias('UserLastName'),
        MyFirstDataFrame['age'].alias('UserAge')
    ). \
    withColumn('User_Full_Name', concat(col('UsersFirstName'), lit(', '), col('userLastName'))). \
    show()
&amp;nbsp;
#Result
&amp;nbsp;
+--------------+------------+-------+--------------+
|UsersFirstName|UserLastName|UserAge|User_Full_Name|
+--------------+------------+-------+--------------+
|           Ram|      Tiwari|     25|   Ram, Tiwari|
|         Shyam|          NC|     30|     Shyam, NC|
|         Rohan|        Jaki|     45|   Rohan, Jaki|
|        Ritesh|      sharma|     35|Ritesh, sharma|
+--------------+------------+-------+--------------+&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 29 Jan 2023 06:16:45 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/understanding-rename-in-databricks-now-there-are-multiple-ways/m-p/10534#M5700</guid>
      <dc:creator>Aviral-Bhardwaj</dc:creator>
      <dc:date>2023-01-29T06:16:45Z</dc:date>
    </item>
    <item>
      <title>Re: Understanding Rename in Databricks Now there are multiple ways to rename Spark Data Frame Columns or Expressions. We can rename columns or expressions...</title>
      <link>https://community.databricks.com/t5/data-engineering/understanding-rename-in-databricks-now-there-are-multiple-ways/m-p/10535#M5701</link>
      <description>&lt;P&gt;Very informative, Thanks for sharing&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jan 2023 12:17:21 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/understanding-rename-in-databricks-now-there-are-multiple-ways/m-p/10535#M5701</guid>
      <dc:creator>Ajay-Pandey</dc:creator>
      <dc:date>2023-01-30T12:17:21Z</dc:date>
    </item>
    <item>
      <title>Re: Understanding Rename in Databricks Now there are multiple ways to rename Spark Data Frame Columns or Expressions. We can rename columns or expressions...</title>
      <link>https://community.databricks.com/t5/data-engineering/understanding-rename-in-databricks-now-there-are-multiple-ways/m-p/10536#M5702</link>
      <description>&lt;P&gt;thank you sir&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jan 2023 14:26:12 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/understanding-rename-in-databricks-now-there-are-multiple-ways/m-p/10536#M5702</guid>
      <dc:creator>Aviral-Bhardwaj</dc:creator>
      <dc:date>2023-01-30T14:26:12Z</dc:date>
    </item>
  </channel>
</rss>

