saveAsTable provides capability of changing the type of column while saving the table.
Example
>>> df
DataFrame[id: int, masters: str, gpa: float, stats: str, programming: str, admitted: int]
>>> from teradatasqlalchemy import VARCHAR
>>> from teradatasqlalchemy import INTEGER
>>> df.write.options(types = {'admitted': VARCHAR, 'gpa':INTEGER}).saveAsTable("new_table", mode = "overwrite")
>>> df1 = teraspark_session.createDataFrame("new_table")
>>> df1
DataFrame[id: int, masters: str, gpa: int, stats: str, programming: str, admitted: str]