RDD 解析Json文件

1、JSON文件格式为:

{"key1":{"产地":"南京","外形尺寸":"50*50","型号":"dddd"},"code":"101331569"}

2、程序如下:

public class ExportData {

      public static void main(String[] args) {

                  SparkConf conf = new SparkConf()
                 .setMaster("local[*]")
                 .setAppName("hahhahaha");
                 JavaSparkContext jsc = new JavaSparkContext(conf);

                String atrr = "D:\\aaaa.txt";

               JavaRDD atrrsInput = jsc.textFile(atrr);

               JavaPairRDD modelPair = atrrsInput.mapPartitionsToPair(new AtrrsJson()).filter(new Function, Boolean>() {
public Boolean call(Tuple2 tuple) throws Exception {
   return tuple._1.isEmpty() ? false : true;
}
});


     }

}




class AtrrsJson implements PairFlatMapFunction, String, String>{
    @Override
    public Iterator> call(Iterator lines) throws Exception {
    List> resultList=new ArrayList>();
        ObjectMapper mapper = new ObjectMapper();
        while(lines.hasNext()){
            String line = lines.next();
            try{
            JsonNode rootNode = mapper.readTree(line);
            String cmmdtyCode = rootNode.path("code").textValue();
            JsonNode rootNode2 = rootNode.get("key1");
            String model = rootNode2.path("型号").asText();
            resultList.add(new Tuple2(cmmdtyCode, model));
            }catch(Exception e){
            resultList.add(new Tuple2("", ""));
            }       
        }
        Iterator> result = resultList.iterator();
        return result;
    }


}

你可能感兴趣的:(RDD,SPARK)