从Spark对Redis进行条件更新

你好吗?

我想知道是否有一种推荐的方式可以从Spark对Redis进行条件更新。

基本上,我想做的是:

  • 给定一个Spark数据帧,其中包含列_key_,hash_field_,_value_,_value_version_。对于Spark数据帧中的每一行,我想检查相应的键是否存在于Redis中。如果不存在,则运行_hset key hash_field hash_field+version value_version
  • 如果它存在,则我只想更新值和值版本,如果我的Spark数据帧中的版本比Redis哈希字段中的版本更高。

我已经搜索了这个问题,我找到了最相似的问题是这个->条件Redis设置/仅使用最新版本更新?

但是,这涉及编写和运行Lua脚本。虽然我没问题,但我想知道最好的行动方案是什么。是否有推荐的方式从Spark进行条件性插入?如果Lua确实是要走的路线,那么从Spark进行操作的最佳方法是什么?是否可以使用spark-redis,还是应该下降到更低的级别并为每一行直接使用Jedis?

提前致谢 :)

点赞