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中用Spark模块的使用教程
Apr 13 Python
python抓取并保存html页面时乱码问题的解决方法
Jul 01 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
python浪漫表白源码
Apr 05 Python
python增加图像对比度的方法
Jul 12 Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 Python
vue常用指令代码实例总结
Mar 16 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
python相对企业语言优势在哪
Jun 12 Python
Python制作一个随机抽奖小工具的实现
Jul 07 Python
Python使用OpenCV实现虚拟缩放效果
Feb 28 Python
移除Selenium中window.navigator.webdriver值
Jun 10 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
一个MYSQL操作类
2006/11/16 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
使用jspdf生成pdf报表
2015/07/03 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
2018/02/13 jQuery
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
Python对象转JSON字符串的方法
2016/04/27 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
Django开发中的日志输出的方法
2018/07/02 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
Python3+Appium安装使用教程
2019/07/05 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
Python字节单位转换实例
2019/12/05 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
python 如何停止一个死循环的线程
2020/11/24 Python
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
写给女朋友的道歉信
2014/01/12 职场文书
食品安全演讲稿
2014/09/01 职场文书
科学发展观标语
2014/10/08 职场文书
辞职信的写法
2015/02/27 职场文书
golang import自定义包方式
2021/04/29 Golang
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL