在SparkR中组合两列

时间:2016-04-04 15:12:16

标签: r apache-spark sparkr

在SparkR中组合两列的简单方法是什么?请考虑关注Spark DF:

salary_from  salary_to  position
1500         null       a
null         1300       b
800          1000       c

我希望将salary列与这样的逻辑相结合。从salary_fromsalary_to获取非空的,如果两者都存在,则在中间取一个值。

salary_from  salary_to  position  salary
1500         null       a         1500
null         1300       b         1300
800          1000       c         900

有没有办法遍历每一行并应用我的逻辑,就像我在R中使用apply方法一样?

1 个答案:

答案 0 :(得分:1)

您可以使用coalesce功能:

withColumn(
  sdf, "salary",
  expr("coalesce((salary_from + salary_to) / 2, salary_from, salary_to)")
)

返回第一个非空表达式。