Apache Spark中的多个withColumn出错

时间:2016-10-24 22:37:35

标签: scala apache-spark

这行代码没有像我想象的那样工作:

let feedbackGenerator = UISelectionFeedbackGenerator()
feedbackGenerator.selectionChanged()

我在df1中有数千行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)) 小于60和/或小于120,但我的所有行都归类为 3 4 < /强>:

有关为何发生这种情况的任何见解?

1 个答案:

答案 0 :(得分:1)

正如人们在评论中所说的那样,使用withColumn列表名已经在数据框中,将替换该列。

我认为,对于您想要实现的目标,您可以为每个分类使用不同的列名称,或者只是在单个列中连接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

的子集