scala - 始终从 Spark 中的 s3 存储桶读取最新文件夹

标签 scala amazon-web-services apache-spark amazon-s3

下面是我的 s3 存储桶文件夹结构的样子,

s3://s3bucket/folder1/morefolders/$folder_which_I_want_to_pick_latest/

$folder_which_I_want_to_pick_latest - 对于每个进入的新文件夹,此文件夹始终可以有一个递增的编号,例如 randomnumber_timestamp

有没有一种方法可以通过始终从 Scala 中的 Spark 读取 s3 中的最新文件夹来自动化此过程

最佳答案

处理这种“行为”的最佳方法是将数据构建为分区方法,例如 year=2020/month=02/day=12,其中每个分区都是一个文件夹(在 aws-console 中)。通过这种方式,您可以在 spark 上使用简单的filter来确定最新的。 (更多信息:https://www.datio.com/iaas/understanding-the-data-partitioning-technique/)

但是,如果您不被允许重新构建存储桶,并且您没有可用于计算最新文件夹的特定标识符和/或引用,那么该解决方案的成本可能会很高。请记住,在 s3 中,您没有文件夹的概念,只有一个对象键(在这里您可以看到 /并且在aws console中可以可视化为文件夹),因此,计算$folder_which_I_want_to_pick_latest中的最高增量ID将最终 checkin 存储在存储桶中的所有对象和每个对象-s3 中的请求成本。更多信息:https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-folders.html

关于scala - 始终从 Spark 中的 s3 存储桶读取最新文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59939539/

相关文章:

scala - Scala 集合的测试在哪里?

node.js - 有没有办法将npm-shrinkwrap的lockfileVersion降低到lockfileVersion@1,它会自动使lockfileversion@2?

node.js - 如何在一个 EC2 实例上运行多个应用程序

python - 推荐系统中的 split

list - Scala使用toSet.toList与distinct

scala - 如何提高 Akka-http websocket 性能

sql - 使用 scala 在 spark sql 中编写 UDF

apache-spark - 为什么groupBy之后的分区数是200?为什么这个 200 不是其他数字?

java - 具有 180 个 POM 的 Maven 项目——这是一种代码味道吗?

amazon-web-services - AWS : The CIDR '10.30.1.0/24' conflicts with another subnet