在SparkR中组合两列的简单方法是什么?请考虑关注Spark DF:
salary_from salary_to position
1500 null a
null 1300 b
800 1000 c
我希望将salary
列与这样的逻辑相结合。从salary_from
和salary_to
获取非空的,如果两者都存在,则在中间取一个值。
salary_from salary_to position salary
1500 null a 1500
null 1300 b 1300
800 1000 c 900
有没有办法遍历每一行并应用我的逻辑,就像我在R中使用apply方法一样?
答案 0 :(得分:1)
您可以使用coalesce
功能:
withColumn(
sdf, "salary",
expr("coalesce((salary_from + salary_to) / 2, salary_from, salary_to)")
)
返回第一个非空表达式。