如何在SparkSQL 2.0中使用DataFrames和Scala语言实现这样的SQL查询?我读了很多帖子,但似乎没有一个能满足我的需要,或者如果你能给我指出一个,我会做的。问题在这里:
UPDATE table SET value = 100 WHERE id = 2
UPDATE table SET value = 70 WHERE id = 4
.....
假设您有一个表table
,其中有两列,如下所示:
id | value
--- | ---
1 | 1
2 | null
3 | 3
4 | null
5 | 5
是否有一种方法来实现上述查询,使用映射,匹配案例,udf或if-else语句?我需要存储在value
字段中的值不是连续的,所以我有特定的值要放在那里。我也意识到,在处理dataframe时,不可能修改不可变数据。我没有代码可以分享,因为我不能让它工作,也不能重现任何错误。
可以,这很简单。可以使用when
和otherwise
val pf = df.select($"id", when($"id" === 2, lit(100)).otherwise(when($"id" === 4, lit(70)).otherwise($"value")).as("value"))