python3操作hdfs

直接贴代码
转至 https://blog.csdn.net/qq_29186199/article/details/81531969

# -*- coding: utf-8 -*-
"""
Created on Thu Aug  9 09:09:56 2018

@author: admin
"""
from hdfs import Client
#url:ip:端口,root:制定的hdfs根目录,proxy:制定登陆的用户身份,timeout:设置的超时时间
client = Client("http://localhost:50070",root="/",timeout=100,session=False)

def main():
#    list(hdfs_path, status=False),status:为True时,也返回子目录的状态信息,默认为Flase
    client.list("/")
    '''
    status(hdfs_path, strict=True),
    hdfs_path:就是hdfs路径
    strict:设置为True时,如果hdfs_path路径不存在就会抛出异常,
    如果设置为False,如果路径为不存在,则返回None
    '''
    client.status("/")
#   makedirs(hdfs_path, permission=None),permission:设置权限
    client.makedirs("/test")
#   rename(hdfs_path, local_path)   
    client.rename("/test","/new_name")
    '''
    delete(hdfs_path, recursive=False)
    recursive:删除文件和其子目录.
    设置为False如果不存在,则会抛出异常,默认为False
    '''
    client.delete("/new_name")
    '''
    upload(hdfs_path, local_path, overwrite=False, n_threads=1, temp_dir=None, 
    chunk_size=65536,progress=None, cleanup=True, **kwargs)
    overwrite:是否是覆盖性上传文件
    n_threads:启动的线程数目
    temp_dir:当overwrite=true时,远程文件一旦存在,则会在上传完之后进行交换
    chunk_size:文件上传的大小区间
    progress:回调函数来跟踪进度,为每一chunk_size字节。它将传递两个参数,
    文件上传的路径和传输的字节数。一旦完成,-1将作为第二个参数
    cleanup:如果在上传任何文件时发生错误,则删除该文件
    '''
    client.upload("/test","/opt/bigdata/hadoop/NOTICE.txt")
#    download(hdfs_path, local_path, overwrite=False, n_threads=1, temp_dir=None, **kwargs)参考上传 upload
    client.download("/test/NOTICE.txt","/home")
    '''
    read(*args, **kwds)
      hdfs_path:hdfs路径

      offset:设置开始的字节位置

      length:读取的长度(字节为单位)

      buffer_size:用于传输数据的字节的缓冲区的大小。默认值设置在HDFS配置。

      encoding:制定编码

      chunk_size:如果设置为正数,上下文管理器将返回一个发生器产生的每一chunk_size字节而不是一个类似文件的对象

      delimiter:如果设置,上下文管理器将返回一个发生器产生每次遇到分隔符。此参数要求指定的编码。

      progress:回调函数来跟踪进度,为每一chunk_size字节(不可用,如果块大小不是指定)。
      它将传递两个参数,文件上传的路径和传输的字节数。称为一次与- 1作为第二个参数。
    '''
    with client.read("/test/NOTICE.txt") as reader:  
        print (reader.read())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值