Spark:如何生成文件路径以使用scala从s3读取
Spark :How to generate file path to read from s3 with scala
如何在 scala 中生成并加载多个 s3 文件路径以便我可以使用 :
sqlContext.read.json ("s3://..../*/*/*")
我知道我可以使用通配符来读取多个文件,但是有什么方法可以生成路径吗?例如我的文件结构如下所示:
BucketName/year/month/day/files
s3://testBucket/2016/10/16/part00000
这些文件都是json。问题是我只需要加载文件的特定持续时间,例如。说 16 天,然后我需要加载开始日(10 月 16 日)的文件:10 月 1 日到 16 日。
同一个开始日有 28 天的持续时间,我想从 9 月 18 日开始阅读
有人能告诉我有什么方法可以做到这一点吗?
您可以生成逗号分隔的路径列表:
sqlContext.read.json (s3://testBucket/2016/10/16/,s3://testBucket/2016/10/15/,...);
你可以看看这个answer,你可以指定整个directories
,使用wildcards
甚至CSV of directories and wildcards
。例如:
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 文件搜索。
如何在 scala 中生成并加载多个 s3 文件路径以便我可以使用 :
sqlContext.read.json ("s3://..../*/*/*")
我知道我可以使用通配符来读取多个文件,但是有什么方法可以生成路径吗?例如我的文件结构如下所示: BucketName/year/month/day/files
s3://testBucket/2016/10/16/part00000
这些文件都是json。问题是我只需要加载文件的特定持续时间,例如。说 16 天,然后我需要加载开始日(10 月 16 日)的文件:10 月 1 日到 16 日。
同一个开始日有 28 天的持续时间,我想从 9 月 18 日开始阅读
有人能告诉我有什么方法可以做到这一点吗?
您可以生成逗号分隔的路径列表: sqlContext.read.json (s3://testBucket/2016/10/16/,s3://testBucket/2016/10/15/,...);
你可以看看这个answer,你可以指定整个directories
,使用wildcards
甚至CSV of directories and wildcards
。例如:
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 文件搜索。