Как заключить массив 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
или другим способом, загружая данные в таблицу, а также добавляя в нее новые разделы.
Спасибо