apache-spark - 更改增量表中列的数据类型
问题描述
是否有一个 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'
解决方案
没有更改列的数据类型或删除列的选项。您可以读取 datafame 中的数据,修改数据类型,并借助 withColumn() 和 drop() 并覆盖表。
推荐阅读
- elasticsearch - Elasticsearch 查询从不一致的逗号分隔值数组中删除删除值
- linux - 如何启用远程连接以使用 PostgreSQL?
- many-to-many - 具有多对多关系的 PowerBI
- node.js - 将 ASCII 转换为 Base64,然后使用 NodeJS 转换为二进制
- github-actions - 如何使用 GitHub Actions 访问 GitHub 问题评论正文?
- powershell - 如何根据数据来自的月份将 powershell 中的数据附加到不同的文件中?
- python - NameError:未定义名称“print_rows”
- listview - Xamarin.Forms ListView 不突出显示所选项目?
- vue.js - 在 Gitlab CI/CD 管道中构建 Vue.js 项目失败
- javascript - 我需要在浏览器中显示每个水果 a 和 b