如何在 SparkSQL2.0 上执行类似的 UPDATE-WHERE 语句?
How can I perform a similar UPDATE-WHERE statement on SparkSQL2.0?
如何在 SparkSQL 2.0 中使用 DataFrames 和 Scala 语言实现这样的 SQL 查询?我已经阅读了很多帖子,但其中 none 似乎达到了我的需要,或者如果你能指出一个,我会做的。问题是:
UPDATE table SET value = 100 WHERE id = 2
UPDATE table SET value = 70 WHERE id = 4
.....
假设您有一个 table table
包含两列,如下所示:
id | value
--- | ---
1 | 1
2 | null
3 | 3
4 | null
5 | 5
有没有办法使用映射、匹配案例、UDF 或 if-else 语句来实现上述查询?我需要存储在 value
字段中的值不是连续的,因此我有特定的值要放在那里。我也知道在处理数据帧时无法修改 immutable 数据。我没有代码可以分享,因为我无法让它工作,也无法重现任何错误。
可以,很简单。您可以使用 when
和 otherwise
.
val pf = df.select($"id", when($"id" === 2, lit(100)).otherwise(when($"id" === 4, lit(70)).otherwise($"value")).as("value"))
如何在 SparkSQL 2.0 中使用 DataFrames 和 Scala 语言实现这样的 SQL 查询?我已经阅读了很多帖子,但其中 none 似乎达到了我的需要,或者如果你能指出一个,我会做的。问题是:
UPDATE table SET value = 100 WHERE id = 2
UPDATE table SET value = 70 WHERE id = 4
.....
假设您有一个 table table
包含两列,如下所示:
id | value
--- | ---
1 | 1
2 | null
3 | 3
4 | null
5 | 5
有没有办法使用映射、匹配案例、UDF 或 if-else 语句来实现上述查询?我需要存储在 value
字段中的值不是连续的,因此我有特定的值要放在那里。我也知道在处理数据帧时无法修改 immutable 数据。我没有代码可以分享,因为我无法让它工作,也无法重现任何错误。
可以,很简单。您可以使用 when
和 otherwise
.
val pf = df.select($"id", when($"id" === 2, lit(100)).otherwise(when($"id" === 4, lit(70)).otherwise($"value")).as("value"))