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 paramiko实现ssh远程访问的方法
Dec 03 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
Django ORM框架的定时任务如何使用详解
Oct 19 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
Nov 24 Python
python调用Delphi写的Dll代码示例
Dec 05 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
Python在后台自动解压各种压缩文件的实现方法
Nov 10 Python
python 实现体质指数BMI计算
May 26 Python
Pygame Time时间控制的具体使用详解
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实现约瑟夫问题的方法小结
2015/03/23 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
深入理解vue中的$set
2017/06/01 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
JS获取表格视图所选行号的ids过程解析
2020/02/21 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
selenium获取当前页面的url、源码、title的方法
2019/06/12 Python
python脚本第一行如何写
2020/08/30 Python
python Pexpect模块的使用
2020/12/25 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
高中毕业生生活的自我评价
2013/12/08 职场文书
黄河象教学反思
2014/02/10 职场文书
高级销售求职信
2014/02/21 职场文书
商业融资计划书
2014/04/29 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
2016特色励志班级口号
2015/12/24 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP