2016-06-21 38 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进口上述工作。

相关问题