Casting String->固定精度十进制

时间:2018-01-19 10:40:45

标签: hive hiveql

我在Hive中遇到以下问题:我将一个表存储为Textfile,其中所有字段都是STRING类型。我想在ORC表中转换此表,但是一些STRING字段必须强制转换为十进制,精度= 3.问题是初始字符串字段中的逗号不存在,所以我希望看看是否有一种方法可以告诉Hive在字符串结尾之前放置这个小数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把逗号放在我的字符串的末尾,这是非常逻辑的,但不是我想要的)。

我试图谷歌一点但我没有真正找到解决方案。

谢谢:-)!

1 个答案:

答案 0 :(得分:1)

怎么样..

select cast(entry2 AS DECIMAL)/1000.0