Reputation: 19648
I have a table with a column double type, and I am trying to convert that from double to string.
However, when I use the cast command, it "smartly" convert that into scientific notation. like below:
select
number,
cast(number as string),
from ...
it looks like
number c1_
9999999902 9.999999902E9
9999999902 9.999999902E9
9999999902 9.999999902E9
9999999902 9.999999902E9
9999999909 9.999999909E9
Can anyone show me how to avoid converting that into scientific and keep the raw text?
Upvotes: 7
Views: 91722
Reputation: 9067
Hive supports good old printf()
function so that you can control the output format explicitly - check Language Manual UDF under "String functions"
Upvotes: 13
Reputation: 1024
Hive converts double to scientific representation while cast to string because Hive treats double itself in a same way. Therefore, problem is not with cast to string.
See below example:
select 9999999902.0, cast(9999999902.0 as BIGINT), cast(cast(9999999902.0 as BIGINT) as string) from ..
Output:
OK
9.999999902E9 9999999902
Upvotes: 14