Поскольку вы добавили метод .show () в строку, он не возвращает новый фрейм данных. Внесите следующие изменения и попробуйте
elite_df = DF1.withColumn("Is_elite",array_intersect(DF1.year,DF1.elite_years))
elite_df.show()
Если вы запутались в объекте в python, попробуйте напечатать тип объекта.
#the following must return a dataframe object.
print(type(elite_df))
Фреймы данных неизменны, и каждое преобразование создает новую ссылку на фрейм данных, и, следовательно, если вы попытаетесь распечатать старую дейтаграмму, вы не получите пересмотренный результат.