如何有效地将多个 json 文件读取到 Dataframe 或 JavaRDD 中?

2022-09-03 03:52:50

我可以使用以下代码读取单个 json 文件,但我需要读取多个 json 文件并将它们合并到一个数据帧中。我该怎么做?

DataFrame jsondf = sqlContext.read().json("/home/spark/articles/article.json");

或者有没有办法将多个json文件读取到JavaRDD中,然后转换为Dataframe?


答案 1

若要在 Spark 中读取多个输入,请使用通配符。无论你是在构建数据帧还是rdd,这都是正确的。

context.read().json("/home/spark/articles/*.json")
// or getting json out of s3
context.read().json("s3n://bucket/articles/201510*/*.json")

答案 2

您可以使用完全相同的代码读取多个 JSON 文件。只需传递一个路径到目录/带有通配符的路径,而不是单个文件的路径。

DataFrameReader还提供了具有以下签名的 json 方法

json(jsonRDD: JavaRDD[String])

这可用于解析已加载到 .JavaRDD