Я сохраняю сообщения json для каждого обновления строки из источника oracle в S3. структуры JSON как нижеSpark SQL расширяет массив до нескольких столбцов
{
"tableName": "ORDER",
"action": "UPDATE",
"timeStamp": "2016-09-04 20:05:08.000000",
"uniqueIdentifier": "31200477027942016-09-05 20:05:08.000000",
"columnList": [{
"columnName": "ORDER_NO",
"newValue": "31033045",
"oldValue": ""
}, {
"columnName": "ORDER_TYPE",
"newValue": "N/B",
"oldValue": ""
}]
}
Я использую искры SQL, чтобы найти последнюю запись для каждого ключа на основе максимального значения для уникального идентификатора. columnList - массив со списком столбцов для таблицы. I хотите объединить несколько таблиц и получить последние записи. Как я могу присоединиться к столбцам из массива json из одной таблицы с столбцами из другой таблицы. Есть ли способ взорвать массив json в несколько столбцов. Например, выше json будет иметь ORDER_NO как один столбец, а ORDER_TYPE - как другой столбец. Как создать кадр данных с несколькими столбцами на основе поля columnName Например, для нового RDD должны быть столбцы (tableName, action, timeStamp, uniqueIdentifier, ORDER_NO, ORDER_NO) Значение поля ORDER_NO и ORDER_NO должно отображаться из поля newValue в json.