Эксперты, у меня есть список столбцов, которые мне нужно использовать для выражения соединения при объединении двух фреймов данных Pyspark (1.6) (я не могу жестко закодировать этот список в моем выражении соединения, поскольку оно является частью общего кода).У меня есть эти 2 dataframes-
>>> df.show()
+---------+---------+------+
|column1 |column2 |column3|
+---------+---------+------+
| abcd| xyz| 12A|
| abcd1| xyz| 12A|
+---------+---------+------+
>>> df1.show()
+---------+---------+------+
|column1 |column2 |column3|
+---------+---------+------+
| abcd1| xyz| 12A|
+---------+---------+------+
Я делаю левое соединение, и я хочу только записи, которые присутствуют только в "df".
Столбцы, чтобы присоединиться на-
joinCols = ['column1','column2','column3']
Join Expression-
>>> df.join(df1,joinCols,"left").show()
+---------+---------+------+
|column1 |column2 |column3|
+---------+---------+------+
| abcd1| xyz| 12A|
| abcd| xyz| 12A|
+---------+---------+------+
Теперь это соединение работает файл, без проблем.Но я ищу только одну запись в выводе.
| abcd| xyz| 12A|
Поскольку соединение по умолчанию отбрасывает столбцы из другого фрейма данных "df1", я не могу поставить условие над выражением соединения выше.Я попытался -
df.join(df1,joinCols,"left").filter(isnull(df1["column1"])).show()
Это выше ошибки, потому что у него нет столбца в выходных данных для применения выражения фильтра.Есть предложения?