python使用pyhdfs模块读写hdfs的图片
1. 读取HDFS图片
import cv2
from pyhdfs import HdfsClient
if __name__ == '__main__':
# 创建HDFS连接客户端
client = HdfsClient(hosts="node01", user_name="root")
# 打开图片
hdfs_img_path = "/image/demo.jpg"
response = client.open(hdfs_img_path)
# 将二进制流转化为图片
mat = cv2.imdecode(np.frombuffer(response.read(), np.uint8), cv2.IMREAD_COLOR)
# 展示
cv2.show("demo_img", mat)
cv2.waitKey(0)
2. 往HDFS写图片
import cv2
from pyhdfs import HdfsClient
if __name__ == '__main__':
# 创建HDFS连接客户端
client = HdfsClient(hosts="node01", user_name="root")
# 读取本地图片(也可自己通过numpy模块生成)
mat = cv2.imread(r"G:\tmp\demo.jpg")
# hdfs保存路径
path = "/image/demo.jpg"
# 写入hdfs
if client.exists(path):
client.delete(path)
client.create(path, cv2.imencode('.jpg', mat)[1].tobytes())