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 mysqldb连接数据库
Mar 16 Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
Python中Threading用法详解
Dec 27 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
python+Splinter实现12306抢票功能
Sep 25 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
Django框架 querySet功能解析
Sep 04 Python
Python 函数绘图及函数图像微分与积分
Nov 20 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
python的sys.path模块路径添加方式
Mar 09 Python
Python 匹配文本并在其上一行追加文本
May 11 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
购物车实现的几种方式优缺点对比
2018/05/02 PHP
php实现算术验证码功能
2018/12/05 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
javascript concat数组累加 示例
2009/09/03 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
JS执行控制之节流模式实例分析
2018/12/21 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
python距离测量的方法
2018/03/06 Python
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
Python中常用的内置方法
2019/01/28 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
买房委托公证书
2014/04/08 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
自荐信大全
2019/03/21 职场文书