python每5分钟从kafka中提取数据的例子


Posted in Python onDecember 23, 2019

我就废话不多说了,直接上代码吧!

import sys
sys.path.append("..")
from datetime import datetime
from utils.kafka2file import KafkaDownloader
import os
"""
实现取kafka数据,文件按照取数据的间隔命名
如每5分钟从kafka取数据写入文件中,文件名为当前时间加5
"""

TOPIC = "rtz_queue"
HOSTS = "ip:9092,ip:9092"
GROUP = "2001"

def get_end_time(hour,minute,time_step):
 if (minute+time_step)%60<60:
  if (minute+time_step)%60<10:
   return str(hour+int((minute+time_step)/60))+":"+"0"+str((minute+time_step)%60)
  else:
   return str(hour+int((minute+time_step)/60))+":"+str((minute+time_step)%60)
 else:
  pass

def kafkawritefile(time_step,time_num):
 start = datetime.now()
 downloader = KafkaDownloader(HOSTS, TOPIC, GROUP)
 i = 1
 while(i<=time_num):
  end_time = get_end_time(start.hour, start.minute,i*time_step)
  end_time_file = end_time.replace(':', '_')
  outfile_path = "/data/tmp/" + end_time_file + ".csv"

  if os.path.exists(outfile_path):
   os.remove(outfile_path)
  writefile = open(outfile_path, 'a+', encoding='utf-8')
  
  for msg in downloader.message():
   curr_time = datetime.now()
   curr_time = str(curr_time)
   split_curr_time = curr_time.split(' ')
   curr_time_str = split_curr_time[1][0:5]
  
   if curr_time_str >= str(end_time):  
    break
  i += 1

if __name__=='__main__':
 time_step = 15
 time_num = 1
 kafkawritefile(time_step,time_num)

以上这篇python每5分钟从kafka中提取数据的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python连接池实现示例程序
Nov 26 Python
python计算最大优先级队列实例
Dec 18 Python
常用python数据类型转换函数总结
Mar 11 Python
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
Jun 09 Python
python中list循环语句用法实例
Nov 10 Python
Python生成随机数组的方法小结
Apr 15 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
Dec 14 Python
python列表推导式操作解析
Nov 26 Python
python安装和pycharm环境搭建设置方法
May 27 Python
Python 代码调试技巧示例代码
Aug 11 Python
python破解同事的压缩包密码
Oct 14 Python
Python爬取科目四考试题库的方法实现
Mar 30 Python
Python彻底删除文件夹及其子文件方式
Dec 23 #Python
win10下python2和python3共存问题解决方法
Dec 23 #Python
py-charm延长试用期限实例
Dec 22 #Python
python分布式计算dispy的使用详解
Dec 22 #Python
使用python实现哈希表、字典、集合操作
Dec 22 #Python
浅析Python数字类型和字符串类型的内置方法
Dec 22 #Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
Dec 22 #Python
You might like
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
常用的js方法合集
2017/03/10 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
详解JavaScript中的坐标和距离
2019/05/27 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python原始字符串(raw strings)用法实例
2014/10/13 Python
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
前端使用canvas生成盲水印的加密解密的实现
2020/12/16 HTML / CSS
巴西在线鞋店:Shoestock
2017/10/28 全球购物
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
优秀党员转正的自我评价
2013/10/06 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
毕业论文评语大全
2014/04/29 职场文书
大学体育课感想
2015/08/10 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python
Python字符串格式化方式
2022/04/07 Python