I am trying to do type cast of all data frame columns based on an input as shown below, how can I do this with a single command that converts all data frame columns? The following code works fine, but I need a generic command that works for any data frame. Thanks in advance for your kind suggestions.
for (colIndex <- 0 to tmpDF.columns.length - 1) {
val columns = df.columns
newdf = df.withColumn(columns(0), df(columns(0)).cast(dataType(0)))
.withColumn(columns(1), df(columns(1)).cast(dataType(1)))
.withColumn(columns(2), df(columns(2)).cast(dataType(2)))
.withColumn(columns(3), df(columns(3)).cast(dataType(3)))
.withColumn(columns(4), df(columns(4)).cast(dataType(4)))
// newdf = df.withColumn(columns(colIndex), df(columns(colIndex)).cast(dataType(colIndex))) --> This didn't work, only last column was updated
}