这个问题在这里已经有答案了:
如何更改spark sql的Dataframe中的列类型(23个答案)
5个月前关门了。
我正在尝试使用spark从配置单元表中提取数据并将其保存到sqlserver表中。我面临的一个问题是,一些列正在被拉入Dataframe中 BYTE
数据类型。我想把这些拉过来 TINYINT
或者 INT
如果 TINYINT
这是不可能的。
我的基本做法是:
query = [SQL query]
val df = sql(query)
df.write.jdbc([connection info])
如何将模式应用于强制使用某些数据类型的进程?
1条答案
按热度按时间zzwlnbp81#
要将spark dataframe列类型从一种数据类型更改为另一种数据类型,可以使用“withcolumn()”、“cast function”、“selectexpr”和sql expression。请注意,要转换为的类型应该是datatype类的子类。
在spark中,我们可以将dataframe列更改或强制转换为以下类型,因为这些类型是datatype类的子类。
arraytype、binarytype、booleantype、calendarintervaltype、datetype、hivestringtype、maptype、nulltype、numerictype、objecttype、stringtype、structtype、timestamptype
下面是一个sql表达式示例:
对这个问题的详细答复如下:
如何更改spark sql的Dataframe中的列类型?