更改增量表中列的数据类型

Posted

技术标签:

【中文标题】更改增量表中列的数据类型【英文标题】:Change the datatype of a column in delta table 【发布时间】:2021-05-31 06:59:40 【问题描述】:

是否有一个 SQL 命令可以轻松用于更改 Delta 表中现有列的数据类型。我需要将列数据类型从 BIGINT 更改为 STRING。下面是我正在尝试使用但没有运气的 SQL 命令。

%sql ALTER TABLE [TABLE_NAME] ALTER COLUMN [COLUMN_NAME] STRING

我得到的错误:

org.apache.spark.sql.AnalysisException
ALTER TABLE CHANGE COLUMN is not supported for changing column 'bam_user' with type 
'IntegerType' to 'bam_user' with type 'StringType'

【问题讨论】:

你得到什么错误? @AlexOtt,在问题中添加了错误消息。 你有什么想法或参考为什么它不起作用? 【参考方案1】:

没有更改列的数据类型或删除列的选项。您可以读取datafame中的数据,修改数据类型,并在withColumn()和drop()的帮助下覆盖表格。

【讨论】:

如果表非常大,需要额外的时间和计算,还有哪些其他选择?

以上是关于更改增量表中列的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

是否可以更改视图中列的数据类型?

Toad 问题:Oracle 类型作为显示所有记录的表中列的数据类型

更改数据库中列的数据类型

查看oracle表中列的数据类型

更改 SQL Server DB 中列的数据类型时出错 - Java

如何更改 SQL Server 中列的数据类型?