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文件的md5加密方法
Apr 06 Python
深入理解Python分布式爬虫原理
Nov 23 Python
为什么入门大数据选择Python而不是Java?
Mar 07 Python
Numpy数组转置的两种实现方法
Apr 17 Python
基于python plotly交互式图表大全
Dec 07 Python
Python集合操作方法详解
Feb 09 Python
Python实现链表反转的方法分析【迭代法与递归法】
Feb 22 Python
Python 实现自动完成A4标签排版打印功能
Apr 09 Python
tensorflow模型转ncnn的操作方式
May 25 Python
django使用graphql的实例
Sep 02 Python
全面介绍python中很常用的单元测试框架unitest
Dec 14 Python
Python wordcloud库安装方法总结
Dec 31 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获取时间排除周六、周日的两个方法
2014/06/30 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
Bootstrap精简教程
2015/11/27 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
Python 从相对路径下import的方法
2018/12/04 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
解决Pytorch训练过程中loss不下降的问题
2020/01/02 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
2020/11/09 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
linux面试题参考答案(9)
2016/01/29 面试题
九年级体育教学反思
2014/01/23 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
社区义诊通知
2015/04/24 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
利用Pycharm连接服务器的全过程记录
2021/07/01 Python