Дублирующиеся ключи с Amazon Athena и Open JSONx Serde - PullRequest
0 голосов
/ 25 декабря 2018

У меня есть следующие данные из-за ошибки:

{
  "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 голосов
/ 25 декабря 2018

Presto не поддерживает имена столбцов с учетом регистра (они всегда преобразуются в нижний регистр), поэтому невозможно использовать несколько столбцов, которые отличаются только регистром.

...