Apache spark Spark:条件表达式和列操作

Apache spark Spark:条件表达式和列操作,apache-spark,spark-dataframe,Apache Spark,Spark Dataframe,我有一个具有以下模式的数据帧: |- colA (Int) |- colB (Int) |- cnt (Int) 我想执行以下条件表达式(伪代码): 在上面的示例中,colC是使用withColumn函数创建的新列 我不想在cnt上执行collect 您可以使用when/other语法结合withColumn有条件地创建列: df.withColumn("colC", when($"cnt" > 1, $"colA" + $"colB").otherwise($"colA")) 是否

我有一个具有以下模式的数据帧:

|- colA (Int)
|- colB (Int)
|- cnt  (Int)
我想执行以下条件表达式(伪代码):

在上面的示例中,
colC
是使用
withColumn
函数创建的新列


我不想在
cnt
上执行
collect

您可以使用
when/other
语法结合
withColumn
有条件地创建列:

df.withColumn("colC", when($"cnt" > 1, $"colA" + $"colB").otherwise($"colA"))

是否可以传递函数?@Neel,是的,您可以创建一个用户定义的函数,然后使用/传递:
df.withColumn("colC", when($"cnt" > 1, $"colA" + $"colB").otherwise($"colA"))