根据现有列

时间:2017-11-20 10:13:05

标签: scala apache-spark apache-spark-sql

虽然这似乎是一项微不足道的任务,但我还没能找到一个整洁的解决方案。我想将一个新的(整数)列nCol添加到dataframe,其值通过比较数据帧的两个现有列(两个字符串类型)eCol1eCol2

类似的东西:

df(nCol) = {
  if df(eCol1) == df(eCol2) then 1
  else 0
}

我相信可以在user-defined functions(UDF)的帮助下完成。但这种琐碎的任务还没有更彻底的方法吗?

1 个答案:

答案 0 :(得分:1)

您需要使用Dataframe DSL when/otherwise,以测试使用===的等式:

df
.withColumn("newCol", when(df(eCol1) === df(eCol2),1).otherwise(0))