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] 删除。
我来说两句