星火:如何生成的文件路径从S3使用Scala阅读(Spark :How to generate fi

2019-09-29 00:58发布

如何生成和Scala中加载多个S3文件路径,这样我可以使用:

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

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

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

这些文件都是jsons。 问题是我需要加载的文件只是spacific持续时间,例如。 说16天然后我需要loado为开始日(10月16日)文件:10月1日至一十六日。

28天的持续时间相同的开始一天我想从09月18阅读

一些能告诉我什么方法可以做到这一点?

Answer 1:

您可以在此看一看答案 ,您可以指定整个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 ,并使用火花读取这些文件。

你可以看看这个答案 AWS的S3文件搜索。



Answer 2:

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



文章来源: Spark :How to generate file path to read from s3 with scala