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利用elaphe制作二维条形码实现代码
May 25 Python
Python查询阿里巴巴关键字排名的方法
Jul 08 Python
python执行系统命令后获取返回值的几种方式集合
May 12 Python
python使用多进程的实例详解
Sep 19 Python
python 2.7 检测一个网页是否能正常访问的方法
Dec 26 Python
Python docx库用法示例分析
Feb 16 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
Python实现获取系统临时目录及临时文件的方法示例
Jun 26 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
python自动化工具之pywinauto实例详解
Aug 26 Python
opencv3/C++实现视频读取、视频写入
Dec 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
写出高质量的PHP程序
2012/02/04 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
JavaScript replace(rgExp,fn)正则替换的用法
2010/03/04 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
node.js中的Socket.IO使用实例
2014/11/04 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
Python实现的rsa加密算法详解
2018/01/24 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
opencv python如何实现图像二值化
2020/02/03 Python
python matplotlib库的基本使用
2020/09/23 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
开朗女孩的自我评价
2014/02/10 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
个性车贴标语
2014/06/24 职场文书
公司文体活动总结
2015/05/07 职场文书
商业计划书范文
2019/04/24 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
宝塔更新Python及Flask项目的部署
2022/04/11 Python