【问题标题】:BigQuery rounds decimals to zero when uploading CSV file上传 CSV 文件时,BigQuery 将小数四舍五入为零
【发布时间】:2021-08-06 16:41:32
【问题描述】:

我一直在尝试将 csv 文件从 GCS 上传到 BigQuery,无论我尝试什么,它都会将一列中的小数四舍五入为零。

原始数据是一个 csv 文件,当我用 Pandas 加载它时看起来像这样:

    User    Prob  Date
0   2036312 0.35  2021-08-05
1   2285452 0.02  2021-08-05
2   2285462 0.10  2021-08-05
3   2285472 0.10  2021-08-05
4   2285482 0.10  2021-08-05

当我在 BigQuery 上加载它时,结果如下:

Row  User    Prob   Date    
1    2218472  0.0    2021-08-05
2    2241002  0.0    2021-08-05
3    2243352  0.0    2021-08-05
4    2248842  0.0    2021-08-05
5    2258942  0.0    2021-08-05

我尝试了自动检测架构,它加载为浮点数,我尝试手动编写架构并将列作为数字和字符串传递,我得到完全相同的结果(所有数字四舍五入为 0.0)。

我不知所措!我还能尝试什么?为什么会这样?

【问题讨论】:

  • 当我在 Pandas 上加载时,该列的数据类型是 float64
  • 可能是csv中的数字被格式化为字符串?在最坏的情况下从空格开始?您能否将该列作为字符串进行测试导入,并通过 BigQuery 对其进行解析来进一步调查该列?
  • 如何在 BigQuery 中加载文件?按代码?用控制台?你是做什么的?
  • @guillaumeblaquiere 我用控制台加载它

标签: python pandas csv google-bigquery google-cloud-storage


【解决方案1】:

您可以尝试在 Python Pandas 中将该列转换为字符串。理论上,当上传到 GCP Big Query 时,它应该检测为架构中的字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    相关资源
    最近更新 更多