从 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 导入系统的更改,我们已将其关闭并正在调查中。谢谢你的报告。
我有一个 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 导入系统的更改,我们已将其关闭并正在调查中。谢谢你的报告。