2017-07-27 73 views
0

Spark 2.1.x在这里。我有一个配置为从Amazon S3读取/写入数据的Spark群集。我可以像这样成功地做到这一点:通过Spark查询Amazon S3对象元数据

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

到目前为止好 - 如果有在该位置读取所有的人都多JSON文件合并为一个Dataset。我正在寻找以某种方式获取每个JSON文件上的最后修改时间戳,我读取它并将其存储在日期时间数组中。因此,如果有20个JSON文件正在阅读,那么我最终会得到一个包含20个日期时间的数组。

任何想法我可以做到这一点?查看Spark API文档我没有看到任何方法来查询S3对象的元数据...

回答

1

您不通过Spark API,而是通过AWS S3 SDK查询s3信息。你可以这样做:显式地,你将不得不通过Maven下载AWS S3 SDK并且包含依赖。另外,我认为他们可能已弃用了较新版本的SDK中的AmazonS3Client,因此您可能需要稍作更改,具体取决于您下载的SDK版本。)