使用pyspark将新列添加到数据帧的问题

使用pyspark将新列添加到数据帧的问题,pyspark,apache-spark-sql,pyspark-dataframes,Pyspark,Apache Spark Sql,Pyspark Dataframes,让我来做这个 DF1.withColumn(“Is_elite”, 数组相交(DF1.年,DF1.精英年) .show() 我得到了我想要的结果,这是一个名为is_elite的新列,包含正确的值和所有值 然后在下一个命令中运行 DF1.show 它只是向我展示了如果我没有运行第一个命令,DF1的样子,我的列将丢失。由于您在行中添加了.show()方法,它不会返回新的数据帧。进行以下更改并试用 elite_df = DF1.withColumn("Is_elite",array_interse

让我来做这个

DF1.withColumn(“Is_elite”,
数组相交(DF1.年,DF1.精英年)
.show()
我得到了我想要的结果,这是一个名为
is_elite
的新列,包含正确的值和所有值 然后在下一个命令中运行

DF1.show
它只是向我展示了如果我没有运行第一个命令,DF1的样子,我的列将丢失。

由于您在行中添加了.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)) 
数据帧是不可变的,每次转换都会创建一个新的数据帧引用,因此,如果您试图打印旧的数据报,就不会得到修改后的结果

因为您在行中添加了.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)) 
数据帧是不可变的,每次转换都会创建一个新的数据帧引用,因此,如果您试图打印旧的数据报,就不会得到修改后的结果