【问题标题】:Get a list all file names in a S3 bucket using Apache Spark使用 Apache Spark 获取 S3 存储桶中的所有文件名列表
【发布时间】:2016-03-05 12:37:18
【问题描述】:

我们有一个包含大量文件的 S3 存储桶。文件列表每天都在增长。我们需要一种方法来获取文件列表并根据文件名中存在的元数据生成计数(分组依据)。我们不需要此内容。这些文件很大并且包含二进制内容,因此下载它们并不是最佳选择。

我们目前正在使用 S3 Java API 获取文件名列表,将它们存储在列表中,并使用 Spark 进行处理。这目前适用,因为文件数量有数十万,但无法扩展以满足我们未来的需求。

有没有办法使用 Spark 进行整个处理?

【问题讨论】:

标签: java amazon-s3 apache-spark


【解决方案1】:

我通过修改 FileInputDStream 实现了类似的效果,这样它就不会将文件的内容加载到 RDD 中,而是简单地从文件名创建一个 RDD。

如果您实际上不想将数据本身读入 RDD,或者想将文件名作为您的步骤之一传递给外部命令,这会提高性能。

只需更改 filesToRDD(..) 以便它生成文件名的 RDD,而不是将数据加载到 RDD 中。

见: https://github.com/HASTE-project/bin-packing-paper/blob/master/spark/spark-scala-cellprofiler/src/main/scala/FileInputDStream2.scala#L278

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 2019-06-01
    • 2016-02-01
    • 2020-04-01
    • 2023-02-20
    • 2016-02-06
    相关资源
    最近更新 更多