У меня есть требование перенести данные с S3 на Redshift. В настоящее время использую клей для работы. Текущее требование:
- Сравните первичный ключ записи в таблице красных смещений с входящим файлом, если совпадение найдено, закройте дату окончания старой записи (обновите ее с высокой даты до текущей даты) и вставьте новую.
- Если совпадение первичного ключа не найдено, вставьте новую запись. Реализация: я реализовал это в Glue с помощью pyspark, выполнив следующие шаги: Создал фреймы данных, которые будут охватывать три сценария:
- Если совпадение найдено, обновите дату окончания существующей записи до текущей даты.
- Вставьте новую запись в таблицу Redshift, где найдено совпадение PPK
- Вставьте новую запись в таблицу Redshift, где совпадение PPK не найдено
Наконец, объедините все эти три фрейма данных в один и запишите это в таблицу красных смещений.
При таком подходе будут присутствовать как старая запись (которая имеет высокое значение даты), так и новая запись (которая была обновлена с использованием текущего значения даты).
Есть ли способ удалить старую запись с высоким значением даты с помощью pyspark? Пожалуйста, порекомендуйте.