使用python上传文件夹到HDFS

使用python上传文件夹到HDFS

#可以递归上传文件夹,保存当前文件结构

@staticmethod
    def hdfs_put_all(path, h_path='/testkk/', all_files = []):
        """
        批量上传文件
        :param h_path: hdfs 路径
        @Author: kk
        """
        # 首先遍历当前目录所有文件及文件夹
        try:
            client = pyhdfs.HdfsClient(hosts="", user_name="root")
            file_list = os.listdir(path)
            # 准备循环判断每个元素是否是文件夹还是文件,是文件的话,把名称传入list,是文件夹的话,递归
            for file in file_list:
                # 利用os.path.join()方法取得路径全名,并存入cur_path变量,否则每次只能遍历一层目录
                cur_path = os.path.join(path, file)
                # 判断是否是文件夹
                if os.path.isdir(cur_path):
                    client.mkdirs(h_path + file)
                    Property.hdfs_put_all(cur_path, h_path + file + '/', all_files)
                else:
                    all_files.append(file)
                    client.copy_from_local(cur_path, h_path + file)
            return all_files
        except Exception as e:
            print(e)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值