def withColumnCast(columnName: String, newType: DataType): DataFrame =
      df.select((df.columns.map {
        case c if c == columnName => col(c).cast(newType).as(c)
        case c                    => col(c)
      }): _*)