转换为 parquet 的 csv 文件将 'e0' 添加到值的末尾

csv file converted to parquet adds 'e0' to end of values

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

我收到错误:

    'file has an incompatible Parquet schema for column' 

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

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

我转换为 parquet 的代码是标准的:

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

在这一点上,这些附加值似乎是我收到 'incompatiblity' 错误的原因。为什么要添加这些值,我该如何防止这种情况?

看起来你正在用科学记数法编写包含这些字段的 parquet 文件。这是 e 代表 'times ten to the power of' 的地方,例如。 1.1e2 等于 110。检查格式 pandas.