Проблема добавления новых столбцов в dataframe с использованием pyspark - PullRequest
0 голосов
/ 20 апреля 2020

Скажем, я запускаю это

DF1.withColumn("Is_elite",
               array_intersect(DF1.year,DF1.elite_years))
    .show()

Я получаю нужный результат - новый столбец с именем Is_elite с правильными значениями и всеми. Затем в следующей команде я запускаю

DF1.show

Это просто показывает, как бы выглядел DF1, если бы я не запустил первую команду, мой столбец отсутствует.

1 Ответ

2 голосов
/ 20 апреля 2020

Поскольку вы добавили метод .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)) 

Фреймы данных неизменны, и каждое преобразование создает новую ссылку на фрейм данных, и, следовательно, если вы попытаетесь распечатать старую дейтаграмму, вы не получите пересмотренный результат.

...