AWS Athena 无法将 .csv 整数转换为 table 值

AWS Athena unable to convert .csv integers to table values

我这里有一个简单的 csv 文件

Joe, 30, Male, 3
Winston, 40, Male, 7
Emily, 18, Female, 5
Wendy, 32, Female, 4

我上传到 AWS 上的 S3 存储桶。然后,使用 Athena,我创建了一个 table 和

table创建成功,但查询时只有namegender。所有条目的 ageconsumed 列都是空的。有什么想法吗?

空格是无法在定义的数据类型中获得所需值的原因。只是为了测试的动摇,尝试将所有内容都变成字符串并打印它们,您也会在打印值中看到空格。

我的第一选择是从数据本身中删除空格。但是,如果从数据中删除空格不是微不足道的,您可以保持原样并使用这些列作为字符串创建 table。然后您可以通过首先删除所有空格然后转换为 int 在内部将它们转换为 int。例如,

select cast(replace(age, '<whitespace>') as int) from <tablename>

替换将从您的字符串中删除所有空格。然后 cast 会将字符串转换为整数。 consumed.

也可以这样做