使用Amazon Athena和Open JSONx Serde复制密钥

时间:2018-12-25 12:46:27

标签: hive amazon-athena presto

由于错误,我有以下数据:

{
  "eventType": "something",
  "details": {
    "userName": "NotSet",
    "username": "test@email.com"
  },
  "createdAt": 3
}

创建表的工作原理:

CREATE EXTERNAL TABLE tbl (
         eventType string,
         `createdAt` string,
         details string 
) 
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
 LOCATION 's3://xx/yy'

但是,当我查询(将详细信息尝试到字符串,结构,映射,始终相同)时,我得到重复的键错误:

HIVE_CURSOR_ERROR: Row is not a valid JSON Object - JSONException: Duplicate key "username"

如果将它们用作行列而不是用作映射键甚至字符串,则它们是重复的,为什么它会失败? org.apache.hive.hcatalog.data.JsonSerDe可以跳过,但我不喜欢它,因为%99.5数据是这样的。 org.apache.hive.hcatalog.data.JsonSerDe总是失败。

1 个答案:

答案 0 :(得分:0)

Presto不支持区分大小写的列名(它们始终会转换为小写),因此,不可能有多个仅因大小写而异的列。