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())