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查找第k小元素代码分享
Dec 18 Python
Python简单日志处理类分享
Feb 14 Python
python从入门到精通(DAY 3)
Dec 20 Python
Python中functools模块的常用函数解析
Jun 30 Python
Python的numpy库下的几个小函数的用法(小结)
Jul 12 Python
python2使用bs4爬取腾讯社招过程解析
Aug 14 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
通过python检测字符串的字母
Feb 18 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 Python
python爬取某网站原图作为壁纸
Jun 02 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 Python
Python 的 sum() Pythonic 的求和方法详细
Oct 16 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 购物车实例(申精)
2009/05/11 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
python实现公司年会抽奖程序
2019/01/22 Python
Python实现多进程的四种方式
2019/02/22 Python
python3下载抖音视频的完整代码
2019/06/05 Python
python 杀死自身进程的实现方法
2019/07/01 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
MySQL面试题
2014/01/12 面试题
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
英语专业毕业生自我鉴定
2013/11/09 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
总经理司机岗位职责
2014/02/06 职场文书
银行办公室岗位职责
2014/03/10 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
小学社会实践活动总结
2014/07/03 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
民事上诉状范文
2015/05/22 职场文书