Spark:如何使用scala生成从s3读取的文件路径

时间:2016-10-16 07:35:31

标签: json scala apache-spark amazon-s3 filesystems

如何在scala中生成和加载多个s3文件路径,以便我可以使用:

   sqlContext.read.json ("s3://..../*/*/*")

我知道我可以使用通配符来读取多个文件但是有什么方法可以生成路径吗?例如,我的文件结构如下所示:            BucketName /年/月/日/文件

       s3://testBucket/2016/10/16/part00000

这些文件都是jsons。问题是我需要加载文件的空间持续时间,例如。说16天然后我需要为开始日(oct 16)加载文件:oct 1到16.

同一开始日的持续时间为28天,我想从9月18日开始阅读

有人可以告诉我任何方法吗?

2 个答案:

答案 0 :(得分:1)

您可以查看此answer,您可以指定整个directories,使用wildcards甚至CSV of directories and wildcards。 E.g:

sc.textFile("/my/dir1,/my/paths/part-00[0-5]*,/another/dir,/a/specific/file")

或者您可以使用 AWS API 获取list of files locations并使用spark读取这些文件。

您可以查看此answer到AWS S3文件搜索。

答案 1 :(得分:0)

您可以生成以逗号分隔的路径列表: sqlContext.read.json(s3:// testBucket / 2016/10/16 / ,s3:// testBucket / 2016/10/15 / ,...);