mysql 分批提交_spark dataframe 数据批量写入 redis(pipeline、分批提交)

使用 python 的 spark 模块,即 pyspark,通过 spark sql 从 hive 或 mysql 等存储层读取相关数据,对应 spark 的 dataframe 对象,经过一系列的数据变化操作后(若需要),将最终数据通过 pipeline,并利用 spark 的分布式形式分批写入 redis。

推荐解决方式

假设 dataframe 数据中 id 为其中一列,其余为对应的统计数据列,以 hash 方式写入每行数据,基于 pyspark 封装了如下函数:

from pyspark.sql import DataFrame

from redis import Redis

from time import sleep

def df_2_redis(df: DataFrame, num_partitions=2, batch_size=500, sleep_secs=0.2):

"""

将 spark sql 的 DataFrame 数据分布批量写入 Redis

``df`` 要写入的 spark DataFrame 对象数据。

``num_partitions`` int 类型,指定数据的分区数,默认为 2。

``batch_size`` int 类型,指定每个 worker 批量执行的数据条数,默认为 500。

``sleep_secs`` float 类型,指定每个 worker 批量执行数据后的睡眠时间,单位为秒,默认为 0.2。

"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值