Почему не работает отображение имен полей Athena JsonSerde? - PullRequest
0 голосов
/ 28 апреля 2018

Согласно документации здесь ,

с этим определением таблицы Athena

CREATE EXTERNAL TABLE ctc.rets (
  `L_ListingID` string 
) 
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
  'mapping.systemID' = 'L_ListingID'  
) 
LOCATION 's3://dmh.bucket/retsdata/'
TBLPROPERTIES ('has_encrypted_data'='false');

Я должен получить столбец с именем systemID

Вместо этого я получаю:

enter image description here

Почему отображение имени столбца игнорируется?

1 Ответ

0 голосов
/ 29 апреля 2018

Вы должны указать имя столбца таблицы как systemID, тогда сопоставление разрешит этот столбец из атрибута JSON L_ListingID:

CREATE EXTERNAL TABLE ctc.rets (
  `systemID` string 
) 
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
  'mapping.systemID' = 'L_ListingID'  
) 
LOCATION 's3://dmh.bucket/retsdata/'
TBLPROPERTIES ('has_encrypted_data'='false');
...