2016-09-08 2 views
0

Spark SqlContext를 사용하여 postgres 데이터베이스에서 데이터를 가져 왔습니다.Spark SqlContext에서 JSON 형식을 출력합니다.

 Class.forName(dbDriver); 

     Map<String, String> options = new HashMap<String, String>(); 
     options.put("url", dbUrl); 
     options.put("dbtable", dbTable); 
     options.put("driver", dbDriver); 

     SparkConf conf = new SparkConf().setAppName("JAVA_SPARK") 
       .setMaster("local[2]").set("spark.ui.port‌​", "7077"); 

     JavaSparkContext jsc = new JavaSparkContext(conf); 

     SQLContext sqlContext = new SQLContext(jsc); 

     DataFrame dframe = sqlContext.read().format("jdbc") 
       .options(options).load(); 

     dframe.show(); 

나는 다음과 같은 출력을 가지고있다 :

+------+---+ 
| name|age| 
+------+---+ 
|abc | 20| 
|xyz | 4| 
+------+---+ 

내가 원하는이 JSON format.Is 년에이 형식을 변환 할 수있는 방법이 될 수있는 출력을 여기

샘플 코드입니다 JSON 또는이 다른 특정 방식으로?

답변

0

DF를 json으로 변환하려면 다음을 사용할 수 있습니다.

JavaRDD<String> jsonRDD = dframe.toJSON().toJavaRDD();  
jsonRDD.foreach(data -> { 
     System.out.println(data); 
    }); 

당신은 당신이 다음) (취() 또는 수집 통화 목록으로 얻고 싶다면 다음

dframe.write().json("c:\\temp\\myfile.json"); 

를 사용하여 JSON 파일로 저장합니다. 이러한 방법을 사용할시기는 Spark doc을 참조하십시오.

List<String> mylist = jsonRDD.collect();   
+0

감사 그것은 형식으로 출력을 얻을하는 방법을 worked.But { "이름": "ABC", "나이": "20"}이를 달성하기위한 방법이있다. –

+0

DF로 무엇을 하시겠습니까? 이 DF를 json 파일에 저장 하시겠습니까? – abaghel

+0

DF를 사용하여 테이블에서 검색된 데이터를 JSON 형식의 프런트 엔드에 전달하려고합니다. –

관련 문제