如何在SparkSQL2.0上执行类似的UPDATE-WHERE语句?



如何在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时,不可能修改不可变数据。我没有代码可以分享,因为我不能让它工作,也不能重现任何错误。

可以,这很简单。可以使用whenotherwise

val pf = df.select($"id", when($"id" === 2, lit(100)).otherwise(when($"id" === 4, lit(70)).otherwise($"value")).as("value"))

相关内容

  • 没有找到相关文章

最新更新