У меня есть такие данные ORC (загруженные как изображение)
Данные ORC при загрузке в фрейм данных
Для содержимого в строках не определено никакой схемы, поэтому я хочу разбить ее на RDD's
и перейти к другой Dataframe
, которая имеет некоторую определенную схему (используя "structType
"), чтобы я мог прочитайте JSON.
Поэтому, когда я попытался разбить эти вещи на RDD, просто выбрав столбцы - я получаю, как показано ниже
[{"a" : 1, "b" : 2, "c" : { "c1": 3, "c2" :4}},{"d" : 5, "e" : 6, "f" : { "f1": 7, "f2" :8}},{"g" : 9, "h" : 10, "i" : { "i1": 11, "i2" :12}}]
[{"a" : 13, "b" : 14, "c" : { "c1": 15, "c2" :16}},{"d" : 17, "e" : 18, "f" : { "f1": 19, "f2" :20}},{"g" : 21, "h" : 22, "i" : { "i1": 23, "i2" :24}}]
Я хочу преобразовать этот RDD, как показано ниже, чтобы вставить в мой Dataframe, для которого определена схема
{"Column 1":{"a" : 1, "b" : 2, "c" : { "c1": 3, "c2" :4}},"Column 2":{"d" : 5, "e" : 6, "f" : { "f1": 7, "f2" :8}},"column 3" :{"g": 9, "h" : 10, "i" : { "i1": 11, "i2" :12}}}
{"Column 1":{"a" : 13, "b" : 14, "c" : { "c1": 15, "c2" :16}},"Column 2":{"d" : 17, "e" : 18, "f" : { "f1": 19, "f2" :20}},"column 3":{"g" : 21, "h" : 22, "i" : { "i1": 23, "i2" :24}}}
Все, что мне нужно, это сопоставить каждый элемент в строке с соответствующим именем столбца и добавить " "
к этим именам столбцов и обернуть всю строку в {}
Я не могу split
на "},"
, поскольку JSON может иметь вложенную структуру до 2 уровней и может находиться где угодно в JSON.
Как этого добиться?