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'
我有一个包含许多 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'