пример:
Идентификатор
Тип
Данные
1
День
{Day_1: «Мониторинг», Day_2: «Управление», Evening_6: «Нет», Evening_3: «Монитор»
2
Вечер
{День_2: «Н/Д», День_3: «Нет», Вечер_1 :'Дежурный', Вечер_2:'Дежурный'
3
День
{День_1: «Управление», День_5: «На вызове», Вечер_2: «Нет»
< /tbody>
Мне нужно придать ему структуру для запросов. На основе столбца «Тип» найдите соответствующие сдвиги в столбцах «Структура данных», а затем разведите их в отдельные строки, разделив клавишу подчеркивания.
Итак, результат должен выглядеть следующим образом:
Идентификатор
Тип
Смена
Роль
1
День
1
Мониторинг
1
День
2
Управление
2
Вечер
1
По вызову
2
Вечер
2
По вызову< /td>
3
День
1
Управление
3
День
5
Дежурный
Я работаю в pyspark и пытаюсь сделать это следующим образом:
- Сформируйте регулярное выражение, используя Введите значение столбца + '_' + число.
- Выберите столбцы из столбца структуры «Данные» с помощью regexp_extract.
- Преобразуйте столбцы в строки с помощью функции разнесения.
- Разделить значение имени столбца подчеркиванием и сохранить второе значение индекса.
Подробнее здесь: https://stackoverflow.com/questions/785 ... -and-pivot