让决策更智能
新一代智能数据分析平台

长数值显示错误的解决方法

观小远发表于:2022年03月04日 14:46:12更新于:2022年04月28日 11:25:26

场景:

        用户使用CSV文件创建文件数据集,或者新建抽取数据集的时候,有字段存储的是超过15位的长数值(例如订单ID、用户ID),创建数据集后系统识别为Long型字段,然后数值会发生变化,例如末几位可能会显示为0。这样的话后续创建报表,一直使用的都是错误的数据。

0016221b6b1475137566b940418a84f

原因:

        Long 型和Int 型类似,用来存储整数,虽然一般认为Long型占用4个字节,数值范围内的最大值为10位数(大约为21亿),不过不同编译环境下可能会不统一。现在观远BI能完整显示的数据为大约15位数值,超过15位的部分会发生变化。这一情况在使用Excel打开CSV文件,或者在Excel单元格里直接输入长数值时,也是经常发生的。

0016221b6b171da06cc5844e48f2561

解决方法:

        观远2022年2月份发布的4.4版本已经可以正常识别并显示超过16位的长数值(long型)。不过,超过16位的长数值一般都是订单ID、用户ID等内容,这种数值一般不直接参与聚合计算(计数除外),暂时一旦放入“数值”栏进行聚合计算就会发生变化,计算结果也会不准确(后续会继续进行优化)。

       同时本地的CSV文件,用Excel打开之后,Excel会再次自动识别对应的数值,并且会把末尾几位修改为0。此时保存再上传,就是错误数据了。所以,在创建文本数据集前,切忌用Excel编辑CSV文件。

       根据以上结论,暂时推荐用户升级4.4版本,且仅把这种字段当做维度字段使用。如果任何情况下都不希望该类型字段值发生变化,建议在原始数据库里把长数值格式都存储为String字符串,或者创建数据集最后一步预览阶段把该字段类型改为String,或者之后把字段类型转换为String字符串(Spark函数推荐 cast([字段名] as string) )。

0016221b6df93a0028be0c8af7f43c2

0016221b6df7734dcbbdd93c0e2c986


    您需要登录后才可以回复