apachespark中的multiple withcolumn错误

hjzp0vay  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(358)

这行代码的工作方式与我想象的不同:

val df2 = df1
  .withColumn("email_age", when('age_of_email <= 60, 1))
  .withColumn("email_age", when('age_of_email <= 120, 2))
  .withColumn("email_age", when('age_of_email <= 180, 3).otherwise(4))

我在df1中有数千行 age_of_email 小于60和/或小于120,但我的所有行都被归类为3或4:
你知道为什么会这样吗?

j5fpnvbx

j5fpnvbx1#

正如人们在评论中所说,使用 withColumn 如果列名称已在Dataframe中,则将替换该列。
我认为,为了实现这个目标,您可以为每个分类使用不同的列名,或者简单地将 when() 在单列中,如

val df2 = df1.withColumn("email_age", when('age_of_email <= 60, 1)
                                     .when('age_of_email <= 120, 2)
                                     .when('age_of_email <= 180, 3)
                                     .otherwise(4))

我猜你知道类别是类别的子集 3

相关问题