#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"])