【问题标题】:csv file converted to parquet adds 'e0' to end of values转换为镶木地板的 csv 文件将“e0”添加到值的末尾
【发布时间】:2021-04-12 16:24:19
【问题描述】:

我正在运行测试以填充 Redshift 中的表。我将模拟数据添加到 csv 文件中,然后使用 pandas 转换为镶木地板。我正在使用 COPY 命令将数据从 s3 存储桶中的 parquet 文件获取到我的 Redshift 数据库。

我得到了错误:

    'file has an incompatible Parquet schema for column' 

这些列是 DECIMAL (12,3)。 我检查了 s3 控制台,发现在查看转换后的 parquet 文件时,'e0' 已添加到值的末尾,例如:

    {"id":2873130000000000000,"field1":9.335e0,"field2":9.335e0}

我转换为镶木地板的代码是标准的:

    import pandas as pd
    df = pd.read_csv('test.csv')
    df.to_parquet('test.parquet')

在这一点上,这些附加值似乎是我收到“不兼容”错误的原因。为什么要添加这些值,我该如何防止呢?

【问题讨论】:

    标签: pandas amazon-redshift


    【解决方案1】:

    看起来您正在用科学计数法编写包含这些字段的 parquet 文件。这就是 e 代表“十次方”的地方,例如。 1.1e2 等于 110。请检查您的 pandas 格式。

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 2018-11-09
      • 2020-08-13
      • 1970-01-01
      • 2017-01-18
      • 2018-01-04
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      相关资源
      最近更新 更多