在 SparkR 中合并两列
Combine two columns in SparkR
在 SparkR 中合并两列的简单方法是什么?考虑以下 Spark DF:
salary_from salary_to position
1500 null a
null 1300 b
800 1000 c
我想用这样的逻辑组合 salary
列。从salary_from
和salary_to
取一个不为null的,如果都存在,则取中间的一个值。
salary_from salary_to position salary
1500 null a 1500
null 1300 b 1300
800 1000 c 900
有没有办法遍历每一行并应用我的逻辑,就像我在 R 中使用 apply 方法一样?
您可以使用coalesce
函数:
withColumn(
sdf, "salary",
expr("coalesce((salary_from + salary_to) / 2, salary_from, salary_to)")
)
哪个 returns 第一个非空表达式。
在 SparkR 中合并两列的简单方法是什么?考虑以下 Spark DF:
salary_from salary_to position
1500 null a
null 1300 b
800 1000 c
我想用这样的逻辑组合 salary
列。从salary_from
和salary_to
取一个不为null的,如果都存在,则取中间的一个值。
salary_from salary_to position salary
1500 null a 1500
null 1300 b 1300
800 1000 c 900
有没有办法遍历每一行并应用我的逻辑,就像我在 R 中使用 apply 方法一样?
您可以使用coalesce
函数:
withColumn(
sdf, "salary",
expr("coalesce((salary_from + salary_to) / 2, salary_from, salary_to)")
)
哪个 returns 第一个非空表达式。