SparkR:如何合并多个"when"/"otherwise"多个条件
SparkR: How to merge multiple "when"/"otherwise" multiple conditions
我正在尝试基于多个条件创建一个新列,但我发现我不能使用多个 when 子句,否则只能使用一个子句,我不得不使用如下所示的东西:
test1 <- test %>% withColumn("newCol1", otherwise(when(column("oldCol1") == 1, lit("one")),
otherwise(when(column("oldCol1") == 2,lit("two")),
lit("other")))) %>%
select(column("oldCol1"), column("newCol1"))
这给了我预期的结果:
oldCol1 newCol1
1 1 one
2 1 one
3 2 two
4 4 other
5 4 other
6 1 one
在SparkR中使用WHEN函数有没有更清晰的方法?
您可以尝试 coalesce
-ing when
语句:
test1 <- test %>% withColumn(
"newCol1",
coalesce(
when(column("oldCol1") == 1, lit("one")),
when(column("oldCol1") == 2, lit("two")),
lit("other")
)
) %>% select(column("oldCol1"), column("newCol1"))
我正在尝试基于多个条件创建一个新列,但我发现我不能使用多个 when 子句,否则只能使用一个子句,我不得不使用如下所示的东西:
test1 <- test %>% withColumn("newCol1", otherwise(when(column("oldCol1") == 1, lit("one")),
otherwise(when(column("oldCol1") == 2,lit("two")),
lit("other")))) %>%
select(column("oldCol1"), column("newCol1"))
这给了我预期的结果:
oldCol1 newCol1
1 1 one
2 1 one
3 2 two
4 4 other
5 4 other
6 1 one
在SparkR中使用WHEN函数有没有更清晰的方法?
您可以尝试 coalesce
-ing when
语句:
test1 <- test %>% withColumn(
"newCol1",
coalesce(
when(column("oldCol1") == 1, lit("one")),
when(column("oldCol1") == 2, lit("two")),
lit("other")
)
) %>% select(column("oldCol1"), column("newCol1"))