Как я могу исправить структуру JSON, чтобы помочь свече прочитать его правильно Различные типы для одного и того же ключа - PullRequest
0 голосов
/ 08 января 2019

Я получаю JSON. Я не знаю, на каких клавишах появится проблема. Когда spark видит разные типы для одного и того же ключа, он помещает это в строку, и мне нужно иметь данные в виде массива. Я использую spark 2.4 с json lib, поэтому я читаю jsons как
spark.read.json("jsonfile")

Я сглаживаю свою схему json в такой формат, где col имя:
B__C
B__somedifferentColname

Пример JSON выглядит следующим образом

{
   "A":[
      {
         "B":{
            "C":"Hello There"
         }
      },
      {
         "B":[
            {
               "C":"Hello"
            },
            {
               "C":"Hi"
            }
         ]
      }
   ]
}

и я хотел бы, чтобы этот json был в таком формате:

{
   "A":[
      {
         "B":[{
            "C":"Hello There"
         }]
      },
      {
         "B":[
            {
               "C":"Hello"
            },
            {
               "C":"Hi"
            }
         ]
      }
   ]
}

Чтобы вы могли видеть, что я изменил, к первому объекту добавлены квадратные скобки.

Но когда у меня есть одно значение в качестве типа структуры и одно значение в виде списка, он помещает это в строку, так что значение столбца будет выглядеть так:

"[{"C":"Hello"},{"C":"Hi"}]"

и это должно выглядеть так
B__C
Привет
Привет
Привет

Кто-нибудь может мне помочь, какой трюк я могу использовать для решения этой проблемы? Команда, которая доставляет нам jsons, сказала, что это невозможно сделать с их стороны, поэтому мы должны решить это на нашей стороне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...