У меня есть большое количество файлов JSON, полученных от сторонних производителей. Все они имеют одинаковую схему, за исключением того, что вложенный элемент пуст, он представлен как пустой массив.
1-й пример
{
....
"survey_data":
{
"2": { "question":"....", "answer_id":"....", .... },
"3": { "question":"....", "answer_id":"....", .... },
}
}
Так что это действительный JSON, элемент survey_data является struct_type, но с довольно сложной вложенной структурой (с большим количеством подэлементов, чем в этом упрощенном примере)
Однако, когда survey_data не имеет вложенных элементов, оно представляется как пустой массив:
{
....
"survey_data": []
}
, что очевидно схематически несовместимо, но я не могу повлиять на это, поскольку данные получены от сторонних производителей.
Когда я хочу загрузить эти JSON-файлы в spark как один кадр данных, spark выводит тип survey_data в виде строки и экранирует все символы:
"survey_data":"{\"2\":{\"question\": ...
Это явно нехорошо для меня, я вижу 2 подхода к решению этой проблемы:
- каким-то образом предварительно обрабатывать файлы как чистый текст и удалять символы []?
- использовать spark для удаления символов массива или сообщить искру, что столбец должен иметь тип struct?
Кто-нибудь может подсказать мне решение этой проблемы?