2016-09-08 8 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(); 

私は次の出力持っている:私は出力がJSON format.Isにこの形式を変換するためにどのような方法になりたい

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

を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

ありがとうございました。このフォーマット{{name}: "abc"、 "age": "20"}の出力方法はこれを達成する方法です。 –

+0

DFで何をしたいですか?このDFをjsonファイルに保存しますか? – abaghel

+0

DFを使用してテーブルから取得したデータをJSON形式のフロントエンドに渡したいとします。 –

関連する問題