Hive 铸造字符串->固定精度十进制

Hive 铸造字符串->固定精度十进制,hive,hiveql,Hive,Hiveql,我在配置单元中有以下问题:我有一个存储为文本文件的表,所有字段都是字符串类型。我想在ORC表中转换此表,但某些字符串字段必须转换为精度为3的十进制。问题是,逗号不在初始字符串字段中,所以我想看看是否有办法告诉配置单元将小数点放在字符串末尾之前的3个位置:- 因此,我的HiveSql命令如下所示: CREATE my_orc_table(entry1 STRING, entry2 DECIMAL(10,3)) STORED AS ORC; INSERT INTO TABLE my_orc_tabl

我在配置单元中有以下问题:我有一个存储为文本文件的表,所有字段都是字符串类型。我想在ORC表中转换此表,但某些字符串字段必须转换为精度为3的十进制。问题是,逗号不在初始字符串字段中,所以我想看看是否有办法告诉配置单元将小数点放在字符串末尾之前的3个位置:-

因此,我的HiveSql命令如下所示:

CREATE my_orc_table(entry1 STRING, entry2 DECIMAL(10,3)) STORED AS ORC;
INSERT INTO TABLE my_orc_table SELECT * FROM my_text_table;
所以问题是,如果我的TextTable的entry2中有00050000,我想在我的ORC表中获得50.0。目前我有50000个,我想Hive在我的字符串末尾加了逗号,这很符合逻辑,但不是我想要的

我试着用谷歌搜索一下,但我没有真正找到解决办法

谢谢:-

select cast(entry2 AS DECIMAL)/1000.0

谢谢:-。但是你把这个select命令放在哪里呢?实际上不可能更新配置单元中的表,是吗?所以我应该将Insert改为query?好的,我想我可以这样做:在表中插入my_orc_tableentry 1,entry 2从my_text_表中选择entry1,entry2/1000;