如何正确读取拼花地板文件中的固定长度数组小数



我使用apacheparquet-cpp库来读取parquet文件。当我读取固定长度数组物理类型的十进制值时,我似乎得到了一个额外的字节,似乎(我认为(用来指定数字是否为负数。我似乎找不到有关这方面的文件。我也不知道为什么需要它,因为这个数字已经是2的补码了。所以不管怎样它都签了名。

以下是一个示例:可以用8个字节表示的负数,如:CE8DFDC498D5D5F5将用9个字节表示,如:FFCE8DFDC498D5D5F5

有人知道为什么会这样吗?这方面有官方资源吗?

负值是正确的,但FF不是负数,它是一个符号扩展(对于正数,您将有一个前导0x00(。由于这些值是固定宽度的,因此负值需要进行符号扩展,以在2-补全中保留解释。parquet-cpp在写入文件时使用的实际字节宽度由存储的十进制值的精度决定。读取时的字节宽度由文件固定。

最新更新