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 相关文章推荐
django 自定义用户user模型的三种方法
Nov 18 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
对python捕获ctrl+c手工中断程序的两种方法详解
Dec 26 Python
python async with和async for的使用
Jun 20 Python
python实现登录密码重置简易操作代码
Aug 14 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
python3 常见解密加密算法实例分析【base64、MD5等】
Dec 19 Python
python语音识别指南终极版(有这一篇足矣)
Sep 09 Python
selenium判断元素是否存在的两种方法小结
Dec 07 Python
OpenCV-Python实现图像平滑处理操作
Jun 08 Python
Python实现列表拼接和去重的三种方式
Jul 02 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
关于文本留言本的分页代码
2006/10/09 PHP
php cookie 登录验证示例代码
2009/03/16 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
2013/09/11 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
python函数返回多个值的示例方法
2013/12/04 Python
Python模拟登录12306的方法
2014/12/30 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
生产部岗位职责范文
2014/02/07 职场文书
毕业生个人总结
2015/02/28 职场文书
酒店圣诞节活动总结
2015/05/06 职场文书
我是特种兵观后感
2015/06/11 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
redis内存空间效率问题的深入探究
2021/05/17 Redis
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python