【发布时间】:2017-05-11 14:14:23
【问题描述】:
我遇到了以下问题。我在特定存储桶内的 S3 中存储了大约 30,000 个 JSON 文件。这些文件非常小;每个只需要 400-500 Kb,但它们的数量并不是那么小。
我想根据所有这些文件创建 DataFrame。我正在使用通配符读取 JSON 文件,如下所示:
var df = sqlContext.read.json("s3n://path_to_bucket/*.json")
我也尝试过这种方法,因为 json(...) 已被弃用:
var df = sqlContext.read.format("json").load("s3n://path_to_bucket/*.json")
问题是创建df 需要很长时间。我等了 4 个小时,Spark 作业仍在运行。
有没有更有效的方法来收集所有这些 JSON 文件并基于它们创建 DataFrame?
更新:
或者至少可以读取最后 1000 个文件而不是读取所有文件?我发现可以传递如下选项sqlContext.read.format("json").options,但是我不知道如何只读取 N 个最新文件。
【问题讨论】:
标签: scala apache-spark amazon-s3