【问题标题】:Databricks error when change type column from string to numeric将类型列从字符串更改为数字时出现 Databricks 错误
【发布时间】:2021-10-20 00:22:06
【问题描述】:

我有如下错误:

com.databricks.backend.common.rpc.DatabricksExceptions$SQLExecutionException: org.apache.spark.sql.catalyst.parser.ParseException: 在输入'alter table x9concsheet5 Add netto_resultaat'(第 1 行,第 29 行)处没有可行的替代方案*

当我在 databricks 中运行这个 sql 命令时:

%sql alter table x9concsheet5 添加 netto_resultaat numeric(17,2)

要求是将临时表x9concsheet5中的列类型从字符串更改为数字。

有什么建议吗?

【问题讨论】:

  • 不要以为你可以“改变现有列的数据类型”。您必须使用新类型创建另一列,删除旧列并将新名称重命名为旧名称。

标签: python sql databricks


【解决方案1】:

您可以使用以下命令修改数据类型

ALTER TABLE table_name CHANGE old_col_name new_col_name new_data_type

但是你什么时候想将列类型从字符串修改为十进制(17,2),你可以执行以下步骤,

  1. 使用字符串中的数值转换 netto_resultaat 创建一个新列
  2. 删除现有字符串列

【讨论】:

  • 感谢您的回复。如果我想基于旧列创建新列,查询会是什么样子?
猜你喜欢
  • 2015-08-02
  • 1970-01-01
  • 1970-01-01
  • 2021-04-25
  • 1970-01-01
  • 2023-03-20
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多