Свести Json на несколько рядов - PullRequest
0 голосов
/ 16 мая 2018

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

Уплощение JSON в табличную структуру с использованием только функции Spark-Scala RDD

{ "level":{"productReference":{  

     "prodID":"1234",

     "unitOfMeasure":"EA"

  },

  "states":[  
     {  
        "state":"SELL",
        "effectiveDateTime":"2015-10-09T00:55:23.6345Z",
        "stockQuantity":{  
           "quantity":1400.0,
           "stockKeepingLevel":"A"
        }
     },
     {  
        "state":"HELD",
        "effectiveDateTime":"2015-10-09T00:55:23.6345Z",
        "stockQuantity":{  
           "quantity":800.0,
           "stockKeepingLevel":"B"
        }
     }
  ] }}

+------+-------------+-----+-------------------------+--------+-----------------+
|prodID|unitOfMeasure|state|effectiveDateTime        |quantity|stockKeepingLevel|
+------+-------------+-----+-------------------------+--------+-----------------+
|1234  |EA           |SELL |2015-10-09T00:55:23.6345Z|1400.0  |A                |
|1234  |EA           |HELD |2015-10-09T00:55:23.6345Z|800.0   |B                |
+------+-------------+-----+-------------------------+--------+-----------------+
...