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实现的ini文件操作类分享
Nov 20 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
一篇文章快速了解Python的GIL
Jan 12 Python
Python迭代器与生成器基本用法分析
Jul 26 Python
Python中文编码知识点
Feb 18 Python
在Python中,不用while和for循环遍历列表的实例
Feb 20 Python
python实现二维数组的对角线遍历
Mar 02 Python
教你如何编写、保存与运行Python程序的方法
Jul 12 Python
django foreignkey(外键)的实现
Jul 29 Python
Python while true实现爬虫定时任务
Jun 08 Python
Django-Scrapy生成后端json接口的方法示例
Oct 06 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 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
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
基于php无限分类的深入理解
2013/06/02 PHP
php顺序查找和二分查找示例
2014/03/27 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
python批量修改文件编码格式的方法
2018/05/31 Python
python使用正则筛选信用卡
2019/01/27 Python
python中的decimal类型转换实例详解
2019/06/26 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
Zavvi荷兰:英国大型音像制品和图书游戏零售商
2018/03/22 全球购物
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
房屋鉴定委托书范本
2014/09/23 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
婚前保证书范文
2015/02/28 职场文书
国庆节新闻稿
2015/07/17 职场文书
2015新员工工作总结范文
2015/10/15 职场文书
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers