目前,我尝试在 hive 中合并几个表。实现这一点后,我发现某些列类型不正确。我认为有些应该是float
,但它变成了某种类型string
。然后我运行了 alter 命令:alter table table_name change column_name column_name float;
它返回了错误信息:
失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。无法更改表。以下列的类型与各自位置的现有列不兼容
我认为这意味着 hive 不支持将字符串转换为浮动,如表所示。但我发现我可以在同一列上进行投射并获得想要的结果。这让我很困惑为什么改变和演员之间会有不同的结果。这背后的逻辑是什么。谢谢。