分别用Shell和Python遍历查询Hdfs文件路径

来源:互联网 发布:河南教师网络研修社区 编辑:程序博客网 时间:2024/06/05 03:34
1、使用Shell
/Users/nisj/PycharmProjects/BiDataProc/getOssFileForDemo/getHdfsFilePath.sh
#!/usr/bin/env bashfor file_path in `hadoop dfs -ls /tmp/oss_access/ | awk  -F ' '  '{print $8}' `   do     hadoop dfs -ls $file_path | awk  -F ' '  '{print $8}'   done

2、使用Python
/Users/nisj/PycharmProjects/BiDataProc/getOssFileForDemo/getHdfsFilePath.py
# -*- coding=utf-8 -*-import osimport refor dir_path in os.popen("""hadoop dfs -ls /tmp/oss_access/ | awk  -F ' '  '{print $8}'""").readlines():    dir_path = dir_path.strip()    if len(dir_path) != 0:        x_dir_path = dir_path.replace('/','#')        output = open('txt_path:{x_dir_path}.txt'.format(x_dir_path=x_dir_path), 'w+')        file_path_list = os.popen("""hadoop dfs -ls %s | awk  -F ' '  '{print $8}' """ % (dir_path)).readlines()        output.writelines(file_path_list)        # for file_path in file_path_list:        #     file_path = re.split(' ', file_path.replace('\n', ''))        #     print file_path[0]        output.close()

3、说明
此处文件路径的遍历,只考虑到了两级目录,且目录结构相对统一规范。
Shell脚本通过循环查询及awk操作,将目录路径打印出来;而python脚本是将上级目录下的文件路径存放在一个文件中,可供查看(打印出来的情况,只代码注释部分)。
遍历Os文件路径及Oss上的文件路径的方式,应该与此相同;需要根据不同的访问方式进行代码更改。
2 0
原创粉丝点击