我遇到以下问题。我有大约30,000个JSON文件存储在特定存储桶中的S3中。这些文件非常小;每个只需要400-500Kb,但它们的数量并不是很小。“sqlContext.read.json”花费很长时间从S3中读取30,000个小型JSON文件(400 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?
UPDATE:
,或者至少是它可以读取最后1000个文件,而不是读的所有文件?我发现,可以通过如下选项sqlContext.read.format("json").options
,但我不知道如何只读取N个最新的文件。