Проблемы с удалением столбцов PySpark - PullRequest
0 голосов
/ 29 июня 2018

Цель моего кода - пытаться отбрасывать столбец каждый раз, когда он появляется. Я знаю, что есть способ отбрасывать столбцы без использования цикла for. Причина, по которой метод не работает, заключается в том, что столбцы являются динамическими. Проблема в том, что команда .drop не удаляет указанный столбец. Итак, вот какой-то псевдокод.

for column_name in column_name_list: 

    # create data_frame1 with the column name 
    # join data_frame with other data_frame2 
    # Here I drop column_name in data_frame1 
    data_frame = data_frame.drop(column_name) 

Проблема в том, что после удаления имя столбца повторно появляется во время второй итерации. Я предполагаю, что я удаляю столбец в копии, и он не "сохраняет" data_frame с удаленным столбцом. Спасибо за всю помощь.

1 Ответ

0 голосов
/ 29 июня 2018

Возможно, у вас есть 2 столбца с одинаковым именем после объединения. Если вы присоединяетесь с тем же именем, вы можете легко присоединиться таким образом:

dataframe1.join(dataframe2, col_name) # no need to dataframe1.col_name == dataframe2.col_name 

если Вы уже это делаете и код выше не работает (я использую этот код и работал), вы можете использовать:

 data_frame.select(*set(dataframe.columns) - set(column_names_list))
...