Spark迭代HDFS目录

 孟hinrichs 发布于 2022-12-10 14:44

我在HDFS上有一个目录目录,我想迭代这些目录.使用SparkContext对象有没有简单的方法来使用Spark?

3 个回答
  • 你可以用org.apache.hadoop.fs.FileSystem.特别,FileSystem.listFiles([path], true)

    和Spark一起......

    FileSystem.get(sc.hadoopConfiguration).listFiles(..., true)
    

    编辑

    值得注意的是,良好的做法是获得FileSystem与该Path计划相关的内容.

    path.getFileSystem(sc.hadoopConfiguration).listFiles(path, true)
    

    2022-12-11 02:58 回答
  • 如果有人有兴趣,这是PySpark版本:

        hadoop = sc._jvm.org.apache.hadoop
    
        fs = hadoop.fs.FileSystem
        conf = hadoop.conf.Configuration() 
        path = hadoop.fs.Path('/hivewarehouse/disc_mrt.db/unified_fact/')
    
        for f in fs.get(conf).listStatus(path):
            print(f.getPath(), f.getLen())
    

    在这种特殊情况下,我得到组成disc_mrt.unified_fact Hive表的所有文件的列表.

    FileStatus对象的其他方法,如getLen()来获取文件大小,如下所述:

    类FileStatus

    2022-12-11 03:12 回答
  • import  org.apache.hadoop.fs.{FileSystem,Path}
    
    FileSystem.get( sc.hadoopConfiguration ).listStatus( new Path("hdfs:///tmp")).foreach( x => println(x.getPath ))
    

    这对我有用.

    Spark版本1.5.0-cdh5.5.2

    2022-12-11 03:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有