我遇到以下問題。我有大約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個最新的文件。