创建一个布尔特征来检查两列是否相同

Shu*_*ang 4 scala apache-spark apache-spark-sql

我有一个数据框DF1,它具有三个特征(列)a、b、c,全部为 StringType。我想创建一个新的数据框,DF2其中DF1有两列:

  1. 列a
  2. 新列 d 为 1,否则b=c为 0

输入示例:

a b c  
A B B  
B C A  
D D D  
Run Code Online (Sandbox Code Playgroud)

想要的输出

a d  
A 1  
B 0  
D 1  
Run Code Online (Sandbox Code Playgroud)

小智 6

缺少的部分是drop其他两列。

val df2 = df1.withColumn("d", col("b") === col("c")).drop("b").drop("c")
df2.show
Run Code Online (Sandbox Code Playgroud)

这给了我们

+---+-----+
|  a|    d|
+---+-----+
|  A| true|
|  B|false|
|  D| true|
+---+-----+
Run Code Online (Sandbox Code Playgroud)