使用 pyspark 向数据框添加新列
Issue adding new columns to dataframe using pyspark
说我运行这个
DF1.withColumn("Is_elite",
array_intersect(DF1.year,DF1.elite_years))
.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))
数据帧是不可变的,每次转换都会创建一个新的数据帧引用,因此如果您尝试打印旧数据报,您将不会得到修改后的结果。
说我运行这个
DF1.withColumn("Is_elite",
array_intersect(DF1.year,DF1.elite_years))
.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))
数据帧是不可变的,每次转换都会创建一个新的数据帧引用,因此如果您尝试打印旧数据报,您将不会得到修改后的结果。