如何使用DataFrames和Scala语言在SparkSQL 2.0中实现这样的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
有没有办法使用map,match Cases,UDF或if-else语句来实现上述查询?我需要存储在value
字段中的值不是连续的,所以我有特定的值放在那里。我也意识到在处理DataFrame时无法修改不可变数据。我没有要分享的代码,因为我无法让它工作,也不会重现任何错误。
答案 0 :(得分:1)
是的,你可以,非常简单。您可以使用when
和otherwise
。
val pf = df.select($"id", when($"id" === 2, lit(100)).otherwise(when($"id" === 4, lit(70)).otherwise($"value")).as("value"))