问答 查看内容
返回列表

为什么数值转文本后显示科学计数了?

300 1
发表于 2024-8-29 17:14:27 | 查看全部 阅读模式
本帖最后由 观小策 于 2024-8-29 17:17 编辑

截图202408291715177011.png

如图,用cast([数值] as string)把数值字段转字符串后,显示了科学计数

评论1

观小策楼主Lv.1 发表于 2024-8-29 17:19:24 | 查看全部
【原因】

因为spark生成的avro文件,string类型也是使用科学计数法存储的。

1)数字类型在webparser解析时,会进行处理,取消科学计数法;

2)string类型在解析时,没做任何处理,所以显示的科学计数法

即使是double类型,spark底层存储的格式依旧是科学记数法,只是BI对double类型的数据做了处理,统一把科学记数法转换了正常数据。



【解决方案】

不建议直接用cast as string,建议使用spark的format_string()来转为string格式,或者在cast 之前先把数值字段用cast转成decimal/bigint类型, 这样可以避免科学计数法的问题
截图202408291719024568.png
截图202408291719169079.png

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2024 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表