Python读写HDFS图片

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())
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于HDFS的文件读写程序设计与实现可以通过以下步骤完成: 1. 导入必要的库和模块: ```python from hdfs import InsecureClient ``` 2. 创建HDFS客户端对象: ```python client = InsecureClient('http://localhost:50070', user='hadoop') ``` 其中,`http://localhost:50070`是HDFS的Web界面地址,`hadoop`是HDFS的用户名。 3. 上传文件到HDFS: ```python client.upload('/path/to/hdfs/file', '/path/to/local/file') ``` 其中,`/path/to/hdfs/file`是HDFS中文件的路径,`/path/to/local/file`是本地文件的路径。 4. 下载文件从HDFS: ```python client.download('/path/to/hdfs/file', '/path/to/local/file') ``` 其中,`/path/to/hdfs/file`是HDFS中文件的路径,`/path/to/local/file`是本地文件的路径。 5. 创建HDFS文件夹: ```python client.makedirs('/path/to/hdfs/folder') ``` 其中,`/path/to/hdfs/folder`是HDFS中文件夹的路径。 6. 删除HDFS文件或文件夹: ```python client.delete('/path/to/hdfs/file_or_folder', recursive=True) ``` 其中,`/path/to/hdfs/file_or_folder`是HDFS中文件或文件夹的路径。 7. 列出HDFS文件夹中的文件: ```python files = client.list('/path/to/hdfs/folder') print(files) ``` 其中,`/path/to/hdfs/folder`是HDFS中文件夹的路径。 8. 检查HDFS中的文件或文件夹是否存在: ```python exists = client.status('/path/to/hdfs/file_or_folder', strict=False) is not None print(exists) ``` 其中,`/path/to/hdfs/file_or_folder`是HDFS中文件或文件夹的路径。 9. 获取HDFS文件或文件夹的元数据: ```python metadata = client.status('/path/to/hdfs/file_or_folder') print(metadata) ``` 其中,`/path/to/hdfs/file_or_folder`是HDFS中文件或文件夹的路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值