python 操作hdfs

    技术2022-07-11  126

    1.安装依赖包

    pip install -i https://mirrors.aliyun.com/pypi/simple/ hdfs

    2.例子

    from hdfs import InsecureClient hdfs_client = InsecureClient('http://lys20191020:50070', user='hdfs') # 查看状态 hdfs_client.status('.') #创建目录 hdfs_client.makedirs('/test01/pyhdfs',permission=777) # 删除目录 #其他参数:delete(hdfs_path, recursive=False) #recursive:删除文件和其子目录,设置为False如果不存在,则会抛出异常,默认为False hdfs_client.delete('/test01/pyhdfs', recursive=False) #上传文件 #第一个参数,hdfs路径 #第二个参数,本地路径 #第三个参数,是否覆盖hdfs已有的文件 # windows 下面操作会出现下面的错误提示,解决的办法是修改hosts文件,配置上hadoop集群的ip映射即可解决 # urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x000001B2DBDAEDD8>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed hdfs_client.upload('/test01/pyhdfs', '1.txt',False) # 从hdfs获取文件到本地 # client.download(hdfs_path, local_path, overwrite=False) hdfs_client.download('/test01/pyhdfs', 'E://test001', overwrite=True) # 追加数据到hdfs文件 # client.write(hdfs_path, data, overwrite=False, append=True, encoding='utf-8') hdfs_client.write('/test01/pyhdfs/1.txt', 'this is overwite \n', overwrite=True) hdfs_client.write('/test01/pyhdfs/1.txt', 'this is append ', overwrite=False, append=True, encoding='utf-8') # 移动或者修改文件 # client.rename(hdfs_src_path, hdfs_dst_path) hdfs_client.rename('/test01/pyhdfs/1.txt', '/test01/pyhdfs/2.txt')
    Processed: 0.020, SQL: 9