Note that Spark never guarantees ordering of columns. There’s nothing in Spark 
documentation that says that the columns will be ordered a certain way. The 
proposed solution relies on an implementation detail that might change in 
future version of Spark.

Ideally, you shouldn’t rely on Dataframe to maintain order of columns. The 
question is why do you care about ordering of cols? If order of data is 
important, then you should put it in an array

From: Vikas Garg <[email protected]>
Date: Thursday, November 12, 2020 at 12:40 PM
To: Subash Prabakar <[email protected]>
Cc: German Schiavon <[email protected]>, User <[email protected]>
Subject: RE: [EXTERNAL] Spark Dataset withColumn issue


CAUTION: This email originated from outside of the organization. Do not click 
links or open attachments unless you can confirm the sender and know the 
content is safe.


Ohhkkkk

Thanks a lot

On Thu, Nov 12, 2020, 21:23 Subash Prabakar 
<[email protected]<mailto:[email protected]>> wrote:
Hi Vikas,

He suggested to use the select() function after your withColumn function.

val ds1 = ds.select("Col1", "Col3").withColumn("Col2", 
lit("sample”)).select(“Col1”, “Col2”, “Col3")


Thanks,
Subash

On Thu, Nov 12, 2020 at 9:19 PM Vikas Garg 
<[email protected]<mailto:[email protected]>> wrote:
I am deriving the col2 using with colunn which is why I cant use it like you 
told me

On Thu, Nov 12, 2020, 20:11 German Schiavon 
<[email protected]<mailto:[email protected]>> wrote:
ds.select("Col1", "Col2", "Col3")

On Thu, 12 Nov 2020 at 15:28, Vikas Garg 
<[email protected]<mailto:[email protected]>> wrote:
In Spark Datase, if we add additional column using
withColumn
then the column is added in the last.

e.g.
val ds1 = ds.select("Col1", "Col3").withColumn("Col2", lit("sample"))

the the order of columns is >> Col1  |  Col3  |  Col2

I want the order to be  >> Col1  |  Col2  |  Col3

How can I achieve this?

Reply via email to