根据上次修改将文件从 s3 下载到 Hive 中?

Download files from s3 into Hive based on last modified?

我想下载 last modified 日期在特定时间段内的一组文件,比如 2015-5-62015-6-17。这些文件的内容将直接放入一个 Hive table 以供进一步处理。

我知道 this 是可能的,但是 它要么只适用于一个文件,要么适用于整个存储桶。我想下载某个时间范围内 last modified 的存储桶中的所有文件。

如何根据上述需求将多个文件下载到一个Hive中table?

你试过这个吗

CREATE EXTERNAL TABLE myTable (key STRING, value INT) LOCATION   
's3n://mys3bucket/myDir/* ;  or  
's3n://mys3bucket/myDir/filename*'(if it starts with something common)

这可以通过 Java 的 AWS SDK 实现,其中可以使用自定义 UDF 或 UDTF 来 ping 键和 return 它们的最后修改日期:

S3ObjectSummary.getLastModified();

更多信息:AWS Java SDK Docs - S3ObjectSummary