如何从 S3 存储桶中读取最后修改的 csv 文件?

Posted

技术标签:

【中文标题】如何从 S3 存储桶中读取最后修改的 csv 文件?【英文标题】:How to read the last modified csv files from S3 bucket? 【发布时间】:2019-11-04 19:48:46 【问题描述】:

我来找你看看你是否有一个专业提示,将 Glue 作业生成的最新 csv 文件加载到 S3 存储桶中以加载到 jupyter notebook。

我使用此命令从 S3 文件夹加载我的 csv。是否可以选择仅选择具有最后修改的 csv 文件的文件?

df = sqlContext.read.csv(
    's3://path', 
    header=True, sep=","
)

在我倾向于将我的动态数据帧转换为经典数据帧以覆盖我的 Glue 作业生成的旧文件之前。

通过生成 DyF 是不可能的

谢谢

【问题讨论】:

【参考方案1】:

您可以使用 S3 boto3 api 获取具有最后修改日期的 csv 文件,然后对其进行排序、过滤并将其传递给 Glue 或 Spark 读取 api。

或者,您可以使用 AWS S3 Inventory 并通过 athena 进行查询:https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html

Glue 有 Job Bookmark 的概念,但它是针对新添加的文件而不是修改的文件。

【讨论】:

@Rahul,如果您想添加 sn-p ,请注意 list_objects_v2() 的 1000 限制,否则答案将不适用于 1000 多个文件

以上是关于如何从 S3 存储桶中读取最后修改的 csv 文件?的主要内容,如果未能解决你的问题,请参考以下文章

从 S3 存储桶中读取大量 CSV 文件

如何将 s3 数据从一个 EMR 集群读取到另一个 EMR 集群?

使用 aws.s3 包从 AWS S3 一次读取多个 CSV 文件对象

Pyspark 从 S3 存储桶读取 csv 文件:AnalysisException:路径不存在

当我们从 s3 中的 csv 文件读取数据并在 aws athena 中创建表时如何跳过标题。

使用 lambda 中的 pandas 从 s3 读取 excel 文件并转换为 csv