我有一个Web服务器,该服务器返回要加载到Apache Spark DataFrame中的JSON数据。现在,我有一个shell脚本,该脚本使用wget将JSON数据写入文件,然后运行一个类似于以下内容的Java程序:



DataFrame df = sqlContext.read().json("example.json");


我看过Apache Spark文档,似乎没有一种方法可以自动将这两个步骤结合在一起。必须有一种在Java中请求JSON数据,将其存储为对象然后将其转换为DataFrame的方法,但是我一直无法弄清楚。有人可以帮忙吗?

最佳答案

您可以将JSON数据存储到以下字符串列表中:

final String JSON_STR0 = "{\"name\":\"0\",\"address\":{\"city\":\"0\",\"region\":\"0\"}}";
final String JSON_STR1 = "{\"name\":\"1\",\"address\":{\"city\":\"1\",\"region\":\"1\"}}";
List<String> jsons = Arrays.asList(JSON_STR0, JSON_STR1);


其中每个String代表一个JSON对象。

然后,您可以将列表转换为RDD:

RDD<String> jsonRDD = sc.parallelize(jsons);


一旦有了RDD,就很容易拥有DataFrame:

DataFrame data = sqlContext.read().json(jsonRDD);

07-24 09:48
查看更多