使用java将json数据加载到Spark中的Pair RDD中

时间:2015-09-09 15:47:26

标签: java json apache-spark

我对Spark很新。

我有一个非常基本的问题。我在Spark RDD中读取了一个文件,其中每一行都是JSON。我想让groupBy像转换一样。所以我想将每个JSON行转换为PairRDD。在Java中有没有直接的方法呢?

我的json是这样的:

{
        "tmpl": "p",
        "bw": "874",
        "aver": {"cnac": "US","t1": "2"},
}

目前,我尝试的方式是首先按,然后按:进行分割。有没有直接的方法来做到这一点?

我目前的代码:

val pairs = setECrecords.flatMap(x => (x.split(",")))
pairs.foreach(println)

val pairsastuple = pairs.map(x => if(x.split("=").length>1) (x.split("=")(0), x.split("=")(1)) else (x.split("=")(0), x))

1 个答案:

答案 0 :(得分:0)

您可以尝试使用mapToPair(),但使用Spark SQL & DataFrames API可以让您更轻松地对事物进行分组。数据框API允许您直接加载JSON数据。