Столбцы, которые дублируются и не являются частью условия соединения фреймов данных — Как удалить в PySpark?

#apache-spark

#apache-spark

Вопрос:

У меня есть два фрейма данных, которые имеют общие имена столбцов.

df1 -> Идентификатор, имя, адрес, отдел

df2 -> Идентификатор, имя, адрес, ядро

После того, как я их объединяю, я получаю повторяющиеся столбцы.

 joinedDF = df1.join(df2,['ID'],"inner")
joinedDF.dtypes -> ID, Name, Address, Dept, Name, Address, Core
  

Как мне удалить дублирующиеся столбцы, которые не являются частью объединения? Я хочу взять только один из двух повторяющихся столбцов. Таким образом, желаемый результат будет —

 joinedDF.dtypes -> ID, df1.Name, df2. Address, Dept, Core
  

Ответ №1:

Если вы укажете условие объединения, используя имя столбца в виде строки или массива, то это не приведет к дублированию столбцов, которые являются частью объединяемых столбцов (в вашем случае это один col «ID»), но другие не соединенные столбцы могут привести к дублированию.

Поскольку у вас есть дубликаты cols, которые не являются частью объединения cols, просто выберите необходимые столбцы

 joinedDF = df1.join(df2,['ID'],"inner").select(df1["ID"], df1["Name"], df2["Address"], df1["Dept"],df2["Core"])