В одной записи (объект JSON), мы имеемJSON - сравнить поле во многих записях и устранения расхождений типа
{
"name": "ID",
"value": "4260567,4260556"
}
В другой записи, мы имеем
{
"name": "ID",
"value": {}
}
Моя проблема заключается в том, что это набор данных не может быть запрошен в Apache Drill из-за того, что разные типы используются для одного поля - строки в одном случае и объекты в других. Я также не могу заменить {} на «» по всей доске, потому что есть другие поля, которые на самом деле должны быть объектами, из-за которых возникает одна и та же проблема.
Моей идеей является написать некоторый код для загрузки в пакете данных и пройти через поле путем перекрестных проверок полей и исправить эти несоответствия типов. Например, если он видит, что большинство записей в этом поле ID являются строками, а только некоторые из них являются пустыми объектами, они преобразуют их в пустые строки. Если он видит, что некоторые значения являются массивами/списками и другими значениями в одном поле, это отдельные объекты, он преобразует эти отдельные объекты в массивы/списки. Такие вещи.
Однако это довольно большое предприятие только для одного набора данных. Есть ли какие-то другие способы разрешить это?
Спасибо! Это также работает, когда у вас есть некоторые члены поля в массиве, а другие - как один элемент? – asdvbnm
Да, он работает со значениями массива. Я обновил ответ, чтобы включить массив. – James
Отлично, спасибо. Я действительно сталкиваюсь с новой ошибкой сейчас, но я не могу найти документацию для этой или аналогичной ошибки где угодно. 'Ошибка: DATA_READ ERROR: индекс: 0, длина: 65536 (ожидается: диапазон (0, 32768))', и ошибка указывает на конкретную запись и поле в наборе данных. Я собирался задать еще один вопрос, но решил, что сначала спрошу вас – asdvbnm