通过 Spark 查询 Amazon S3 对象元数据

微博

Spark 2.1.x 在这里。我有一个 Spark 集群配置为读取/写入 Amazon S3。我可以像这样成功地完成这项工作:

val s3Path = "/mnt/myAwsBucket/some/*.json"
val ds = spark.read.json(s3Path)

到目前为止一切顺利——如果该位置有多个 JSON 文件,它会将所有这些文件读入一个Dataset. 我希望以某种方式获取我读取的每个 JSON 文件的上次修改时间戳并将其存储在日期时间数组中。因此,如果我正在阅读 20 个 JSON 文件,我最终会得到一个包含 20 个日期时间的数组。

知道我该怎么做吗?查看 Spark API 文档,我没有看到任何方式来查询 S3 对象的元数据......

格伦尼·赫尔斯·辛德霍尔特

您不是s3通过 Spark API查询信息,而是通过 AWS S3 开发工具包。你可以这样做:

import com.amazonaws.services.s3.AmazonS3Client

val lastModified = new AmazonS3Client().getObject("myBucket","path/to/file").getObjectMetadata.getLastModified

显然,您必须通过 Maven 下载 AWS S3 SDK 并包含依赖项。此外,我认为他们可能已经弃用了AmazonS3Client较新版本的 SDK,因此您可能需要根据您下载的 SDK 版本进行细微更改:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章