【问题标题】:Issue adding new columns to dataframe using pyspark使用 pyspark 向数据框添加新列的问题
【发布时间】:2020-04-20 03:55:52
【问题描述】:

假设我运行这个

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

我得到了我想要的结果,它是一个名为 Is_elite 的新列,其中包含正确的值和所有 然后在下一个命令中我运行

DF1.show

它只是向我展示了如果我不运行第一个命令,DF1 会是什么样子,我的列丢失了。

【问题讨论】:

    标签: pyspark apache-spark-sql pyspark-dataframes


    【解决方案1】:

    由于您在该行中添加了 .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)) 
    

    数据帧是不可变的,每次转换都会创建一个新的数据帧引用,因此如果您尝试打印旧数据报,您将不会得到修改后的结果。

    【讨论】:

      猜你喜欢
      • 2018-05-10
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2018-01-07
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      相关资源
      最近更新 更多