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

时间:2017-11-10 22:15:19

标签: csv amazon-web-services amazon-s3 amazon-athena

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

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

我上传到AWS上的S3存储桶。然后,使用Athena,我用

创建了一个表
  • 更正S3存储桶路径
  • .csv as Data formt
  • 列为name string, age int, gender string, consumed int

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

1 个答案:

答案 0 :(得分:1)

空格是未在定义的数据类型中获取所需值的原因。只是为了摇晃测试,尝试将所有内容串起来并打印出来,您也会看到打印值中的空格。

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

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

Replace将删除字符串中的所有空格。然后,cast会将字符串转换为整数。 消费也可以这样做。