转换为镶木地板的 csv 文件将“e0”添加到值的末尾
Posted
技术标签:
【中文标题】转换为镶木地板的 csv 文件将“e0”添加到值的末尾【英文标题】:csv file converted to parquet adds 'e0' to end of values 【发布时间】: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')
在这一点上,这些附加值似乎是我收到“不兼容”错误的原因。为什么要添加这些值,我该如何防止呢?
【问题讨论】:
【参考方案1】:看起来您正在用科学计数法编写包含这些字段的 parquet 文件。这就是 e 代表“十次方”的地方,例如。 1.1e2 等于 110。请检查您的 pandas 格式。
【讨论】:
以上是关于转换为镶木地板的 csv 文件将“e0”添加到值的末尾的主要内容,如果未能解决你的问题,请参考以下文章
Hive/Bigsql Pandas 将浮点数转换为整数,使用 pyarrow 将空值转换为镶木地板文件
如果 csv 列标题包含空格,则在 spark 中将 csv 转换为 parquet 会出错