У меня есть два фрейма данных с одинаковой схемой. Я использую метод внешнего соединения для обоих фреймов данных, а также методы select и coalesce для выбора и преобразования всех столбцов. Я хочу перебрать список столбцов в методе выбора без явного определения каждого столбца в методе объединения. Было бы здорово узнать, есть ли решение без использования UDF. Две объединяемые таблицы - это songs
и staging_songs
в фрагментах кода ниже.
Вместо явного определения каждого столбца следующим образом:
updated_songs = songs.join(staging_songs, songs.song_id == staging_songs.song_id, how='full').select(
f.coalesce(staging_songs.song_id, songs.song_id),
f.coalesce(staging_songs.artist_name, songs.artist_name),
f.coalesce(staging_songs.song_name, songs.song_name)
)
Выполнение каких-либо действий по строкам из:
# column names to iterate over in select method
songs_columns = songs.columns
updated_songs = songs.join(staging_songs, songs.song_id == staging_songs.song_id, how='full').select(
#using for loop like this raises a syntax error
for col in songs_columns:
f.coalesce(staging_songs.col, songs.col))