Добавление префикса и суффикса в json-файл mongoDB для внешней таблицы улья - PullRequest
0 голосов
/ 14 сентября 2018

Как заключить массив json с именем вроде {"root":[json array]}

Мне поручено создать внешнюю таблицу кустов поверх данных JSON из MongoDB, которая выглядит как [array of objects], поэтому я не могубыть в состоянии создать структуру таблицы кустов без имени для этого массива, например {"root:"[array of objects]} Мне не разрешено изменять данные JSON каждый раз, когда они поступают, как указано выше

Уже упоминалось аналогичная ситуация , но я не хочу загружать файл JSON как String и использовать regexp_replace для него.

Структура таблицы Hive

 CREATE EXTERNAL TABLE IF NOT EXISTS sify_cvs_output.json(
data:Array <
  candidatedob bigint,
  candidateemail string,
  candidateid string,
  candidatename string,
  candidatephone string,
  candidatephoto string,
  createdby string,
  createdtime bigint,
  deleted boolean,
  eventref string,
  examdate bigint,
  fingerprintdata struct<fingerprints:array<struct<enrolledTime:bigint, fingerid:bigint, isotemplate:string, sessionkey:string>>, userid:string>,
  id string,
  labname string,
  locationname string,
  locationref string,
  registeredby string,
  registereddate bigint,
  seatno string,
  updatedby string,
  updatedtime bigint,
  walkincandidate boolean)
PARTITIONED BY (event String,dt String,centercode String)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES ( "ignore.malformed.json" = "true","input.regex" ="*.json")
LOCATION 'hdfs://172.16.2.191:8020/tmp/candidatelist/';

ИтакЕсть ли способ добавить что-то вроде {"root": с префиксом и } с суффиксом, используя WITH SERDEPROPERTIES или другим способом, загружая данные в таблицу, а также добавляя в нее новые разделы.

Спасибо

...