【问题标题】:AWS Athena unable to convert .csv integers to table valuesAWS Athena 无法将 .csv 整数转换为表值
【发布时间】:2017-11-10 22:15:19
【问题描述】:

我这里有一个简单的 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 列都是空的。有什么想法吗?

【问题讨论】:

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


【解决方案1】:

空格是无法在定义的数据类型中获得所需值的原因。只是为了测试的震动,试着把所有的东西都变成字符串并打印出来,你也会在打印的值中看到空格。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 2023-01-24
    • 2022-08-13
    • 2016-05-02
    • 2018-12-17
    相关资源
    最近更新 更多