Athena - DATE 列的正确值来自 JSON

Athena - DATE column correct values from JSON

我有一个包含许多 JSON 个文件的 S3 存储桶。

JSON 文件示例:

{"id":"x109pri", "import_date":"2017-11-06"}

"import_date" 字段是标准格式 YYYY-MM-DD 的 DATE 类型。

我正在 Athena 中创建到 link 所有这些 JSON 文件的数据库连接。

但是,当我在 Athena 中创建一个新的 table 并将此字段格式指定为 DATE 时,我得到:"Internal error" 没有提供其他解释。澄清一下,table 创建得很好,但如果我想预览它或查询它,我会收到此错误。

但是,当我将此字段指定为 STRING 时,它可以正常工作。

所以问题是,这是 BUG 还是 Athena DATE 格式的正确值应该是多少?

日期列类型不适用于 SerDe and/or 数据源的某些组合。

例如,使用带有 org.openx.data.jsonserde.JsonSerDe 的 DATE 列失败,而 org.apache.hive.hcatalog.data.JsonSerDe 有效。

因此,使用以下 table 定义,查询您的 JSON 就可以了。

create external table datetest(
  id string,
  import_date date
)
ROW FORMAT  serde 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION 's3://bucket/datetest'