pyspark读取hive数据写入到redis

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/write-data-to-redis-from-pyspark
spark-redis
https://spark-packages.org/package/RedisLabs/spark-redis?spm=a2c6h.12873639.0.0.4d1e16a3g7Ml18
Pyspark实例-Spark On YARN将HDFS的数据写入Redis
http://www.gdjzkj.com/?m=home&c=View&a=index&aid=117
Python redis.ConnectionError() 例子
https://www.programcreek.com/python/example/36966/redis.ConnectionError
redis操作 + StrictRedis使用
https://www.cnblogs.com/szhangli/p/9979600.html

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
java flink是一个高性能的分布式流式计算框架,可以实现大规模的数据处理和分析。而hive是一个分布式数据仓库工具,可以用于存储和查询大规模的结构化数据redis是一个高性能的内存数据库,可以用于存储和检索数据。 要实现java flink读取hive表中的数据写入redis,我们可以按照以下步骤进行操作: 1. 在java flink中,首先需要配置并连接到hive数据库。可以使用Flink的HiveCatalog来创建一个连接到Hive的catalog,并设置相关的hive metastore地址、用户名和密码等。 2. 根据需要,编写flink程序来读取hive表的数据。可以使用flink的DataStream或Table API来读取hive数据,并将其转换为适当的数据流或表。 3. 在准备好数据之后,我们可以使用flink的RedisSink来将数据写入redis中。在使用RedisSink之前,需要先引入flink-connector-redis的依赖包,并在flink配置文件中配置好redis的连接参数,如redis的主机地址、端口号、密码等。 4. 编写代码将数据写入redis。可以根据数据的特点,选择将整个数据写入一个redis数据结构中,或者将数据分解为多个key-value对存储到redis中。 5. 在代码编写完成后,我们可以使用flink提供的命令或者IDE工具来运行flink程序,它会自动连接到hive数据库和redis,并完成数据读取写入。 通过以上步骤,java flink就可以实现读取hive表中的数据写入redis。这样可以通过flink的分布式计算和hive数据存储能力,结合redis的高速写能力,实现大规模数据的处理和查询。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值