1.在使用Python操作kafka之前,需要安装第三方模块python-kafka(在windows命令窗口)
win+r--->输入cmd然后回车
(或者在搜索那里直接输入cmd然后回车)
会出现一个小黑窗
输入命令pip install kafka-python安装python-kafka模块(出现下面这个表示成功)
查看我们安装的模块的版本信息(出现kafka-python2.0.2再次表示我们安装模块成功)
2.编写一个score.csv文件
先在桌面新建一个文档,文件内容为
"Name","Score" "zhang san",99.0 "li si",49.5 "wang hong",82.5 "liu qian",76.0 "shen teng",78.0 "ma li",88.0 |
然后修改文件的名字和文件拓展名为score.csv,然后将文件拖到python下,(因为我创建了一个kafkapython的包,所以我拖到的是这个包的下面)
3.新建producer.py(要求和文件score.csv在同一个目录下)生产者读取文件的所有内容,然后将其以JSON字符串的形式发送给Kafka消费者
producer.py的内容为:
# 导入相关模块
import os
import json
import csv
#导入kafka的生产者模块
from kafka import KafkaProducer
# 连接kafka
producer = KafkaProducer(bootstrap_servers = 'localhost:9092')
# 读取文件的内容 getcwd()获取的是文件的绝对路径
with open(os.getcwd()+"\\score.csv") as fp:
reader = csv.reader(fp) # 读取csv的内容
# 将读取的内容转换为list
data = list(reader)
# 需要将读取的数据转换为字节类型
data1 = json.dumps(data).encode('utf-8')
# 以字节形式将数据发送到kafka
producer.send('test04',data1)
# 关闭资源
producer.close()
4.新建consumer.py消费者来获得消息并将其显示到屏幕上
consumer.py的内容为:
# 导入模块
import json
# 导入kafka的消费模块
from kafka import KafkaConsumer
# 连接kafka
consumer = KafkaConsumer('test04',bootstrap_servers = 'localhost:9092',group_id=None,auto_offset_reset='smallest')
# 遍历内容
for msg in consumer:
row = msg.value.decode('utf-8')
list = json.loads(row)
for item in list:
print("%s\t%s"%(item[0],item[1]))
5.先在windows命令窗口开启 Zookeeper和Kafka
6.先运行producer.py再运行consumer.py
(运行consumer.py看到我们创建的score.csv文件表示我们成功了!)