hive或unix以指数形式输出

xyhw6mcr  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(377)

我有一个配置单元查询,它以指数形式生成一列的和 (3.52504582E+8) . 在sql中,我从rdbms表中获取数值。这两个输出我都写入文件,并在unix中比较两个文件的差异以进行验证检查。
有什么方法可以转换吗 3.52504582E+8352504582 是在配置单元中还是在unix级别,以便验证成功?
配置单元表总和: 3.52504582E+8 rdbms表总和:
352504582 diff <file1> <file2> 验证失败。

huwehgph

huwehgph1#

有没有办法在配置单元或unix级别将3.52504582e+8转换为352504582,以便验证成功?

$ printf "%.f\n" 3.52504582E+8
352504582

$ awk '{print $1+0}' <<< "3.52504582E+8"
352504582

$ awk '{printf("%.f\n",$1)}' <<< "3.52504582E+8"
352504582

我需要修改配置单元输出文件中的结果。以上内容是否只打印或进行永久性更改?该文件将有2个字段和~分隔。262至3.52504582e+8


# if this is your input file

$ cat infile
262~3.52504582E+8

# result after

$ awk 'BEGIN{FS=OFS="~"}{$2+=0}1' infile
262~352504582

说明: FS -输入字段分隔符, OFS -输出字段分隔符,我们设置两者 FS 以及 OFS 作为
~ $2+=0 awk在此自动转换 1 最后执行默认操作,即打印当前/记录/行, print $0 . 要想知道awk是怎么工作的, awk '1' infile ,它将打印所有记录/行,而 awk '0' infile 什么也没印。零以外的任何数字都是真的,这将触发默认行为。

相关问题