从 CSV 加载的 FLOAT 值未正确解析

FLOAT values loaded from CSV are not parsed correctly

我有一个 CSV 文件,我正在使用此架构将其加载到 BigQuery:

[
  {"name": "l1", "type": "float", "mode": "nullable"},
  {"name": "l2", "type": "float", "mode": "nullable"},
]

我的数据是这样的:

40.7125,-73.8154
34.1007,-81.227
34.1003,-81.2273

将数据加载到BigQuery后,变成了这样:

40.712501525878906,-73.81539916992188
34.10070037841797,-81.22699737548828    
34.10029983520508,-81.22730255126953

这怎么可能?所有额外的数字来自哪里?

在您的数据中,可以通过四舍五入到小数点后 5 位来删除 'extra' 位。在 ROUND(value, 5) 的 BigQuery 查询中,或者您可以使用上面评论的另一种语言进行查询。当数据为lat/long度时,四舍五入到5位数大约是地球上的1米。

或者,如果您现在可以重新导入数据,它将具有完整的精度(即 IEEE 双浮点数)。此问题源于对 BigQuery 导入系统的更改,我们已将其关闭并正在调查中。谢谢你的报告。