2016-06-21 66 views
-1

我有一個數據框,我想添加一個額外的列到它基於一個簡單的條件,基本上說,是否sof sof其他列是否相等給定的字符串或不。我知道我可以創建一個UDF並註冊並使用它,但是我認爲必須有一個更簡單的方法來實現它。這是什麼我對僞碼做如何在DataFrame中基於Spark中的簡單條件創建額外的列

df.withColumn("extra", if (col("a) == "str" 1 else 2)) 

回答

2

您是非常有:

scala> val df = Seq((1,2), (3,3), (4,5)).toDF("a", "b") 
scala> df.show 
+-+-+ 
|a|b| 
+-+-+ 
|1|2| 
|3|3| 
|4|5| 
+-+-+ 

scala> df.withColumn("New", when($"a" === $"b", "equal").otherwise("not")).show 
+-+-+-----+ 
|a|b| New| 
+-+-+-----+ 
|1|2| not| 
|3|3|equal| 
|4|5| not| 
+-+-+-----+ 

請注意,您將需要functionsimplicits進口上述工作。