如何在scala中生成和加载多个s3文件路径,以便我可以使用:
sqlContext.read.json ("s3://..../*/*/*")
我知道我可以使用通配符来读取多个文件但是有什么方法可以生成路径吗?例如,我的文件结构如下所示: BucketName /年/月/日/文件
s3://testBucket/2016/10/16/part00000
这些文件都是jsons。问题是我需要加载文件的空间持续时间,例如。说16天然后我需要为开始日(oct 16)加载文件:oct 1到16.
同一开始日的持续时间为28天,我想从9月18日开始阅读
有人可以告诉我任何方法吗?
答案 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 / ,...);