从PySp向Redis写入数据

2024-10-03 02:42:47 发布

您现在位置:Python中文网/ 问答频道 /正文

在Scala中,我们可以这样写一个RDD到Redis:

datardd.foreachPartition(iter => {
      val r = new RedisClient("hosturl", 6379)
      iter.foreach(i => {
        val (str, it) = i
        val map = it.toMap
        r.hmset(str, map)
      })
    })

我尝试在PySpark中这样做:datardd.foreachPartition(storeToRedis),其中函数storeToRedis定义为:

^{pr2}$

它给我的是:

ImportError: ('No module named redis', function subimport at 0x47879b0, ('redis',))

当然,我已经进口了redis。在


Tags: redismapnewitvalrddscalaiter
1条回答
网友
1楼 · 发布于 2024-10-03 02:42:47

PySpark的SparkContext有一个专门针对这个问题的addPyFile方法。 使redis模块成为一个zip文件(like this),然后调用以下方法:

sc = SparkContext(appName = "analyze")
sc.addPyFile("/path/to/redis.zip")

相关问题 更多 >