我的要求是从kafka读取json对象,并为每条记录在redis缓存中查找并将丰富的数据保存到mongo db。 我能够以结构化流的形式从kafka读取数据,还能够将数据保存到mongo db,但是 我无法在结构化流中进行Redis查找。 Spark版本-2.4.1 使用spark-redis连接器-com.redislabs.provider.redis
到目前为止,在执行查找之前,我将完整的redis缓存放入数据集中,并将其持久化并使用join进行查找。这种方法效果很好,但是我的redis缓存是动态的,可以随时更改。
---现有代码将Redis缓存加载到静态数据集中
val redisServer = "127.0.0.1"
val redisPortNum = 6379
val redisConfig = new RedisConfig(RedisEndpoint(redisServer,redisPortNum))
val keysRDD = spark.sparkContext.fromRedisKeyPattern(DeviceID, 5)(redisConfig)
val keyValueRDD = keysRDD.getKV
val redisCache = keyValueRDD.toDF
设备ID,速度
ahjhfhru12,100
设备ID,设备名称,速度限制
ahjhfhru12,test,50
设备ID,速度,设备名称,速度限制
ahjhfhru12,50,test,100
对于每条记录,我都希望在redis中进行查找以获取更新的信息,并用缓存数据丰富输入数据,而我只想进行这种火花结构化的流传输。
有人可以帮助我如何在结构化流中进行动态查找吗?