1、首先把redis包引入工程,这样就不需要在集群里每台机器上安装redis客户端。
$pip install redis
$cd /usr/local/lib/python3.6/dist-packages/ 找到自己环境的路径
$zip -r redis.zip redis/*
$hdfs dfs -put redis.zip /user/data/
2、在代码里使用 addPyFile加载redis.zip
sc = SparkContext(conf=conf)
sc.addPyFile("hdfs:///user/data/redis.zip")
#定义一个写入redis函数
def DataToRedis(data):
r = redis.StrictRedis(host='IP', port=6379, password='passwd')
for i in data:
r.set(str(i[0]), str(i[1]))
#读取Hive数据
sqlContext = HiveContext(sc)
read_hive_score = sqlContext.sql("Select id,item from recom.result limit 10")
hiveRDD_score =read_hive_score.rdd
result_dataSet = hiveRDD_score.map(lambda x: (x['id'], x['item'])).collect()
#调用函数
DataToRedis(result_dataSet)
参考:
Write data to Redis from PySpark
https://www.e-learn.cn/content/wangluowenzhang/1347480
https://stackoverflow.com/questions/32274540/

最低0.47元/天 解锁文章
2051

被折叠的 条评论
为什么被折叠?



