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



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

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

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

  • 正确的 S3 存储桶路径
  • .csv 作为数据形式
  • 列作为name string, age int, gender string, consumed int

该表已成功创建,但是当我查询它时,只有namegender。所有条目的列ageconsumed为空。有什么想法吗?

空格

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

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

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

替换将从字符串中删除所有空格。然后 cast 会将字符串转换为整数。对于消耗也可以这样做。

相关内容

  • 没有找到相关文章

最新更新