[英]Get a JSON from a Dataset in Spark SQL (java)
我有一個在服務器上運行的Spark SQL應用程序。 它從.parquet文件中獲取數據,並在每個請求中對這些數據執行SQL查詢。 我需要在響應中發送與查詢輸出相對應的JSON。
這就是我所做的
Dataset<Row> sqlDF = spark.sql(query);
sqlDF.show();
所以我知道查詢有效。
我嘗試返回sqlDF.toJSON().collect()
,但在另一端,我僅收到[Ljava.lang.String;@1cd86ff9
。
我嘗試將sqlDF作為JSON文件編寫,但是后來我不知道如何將其內容添加到響應中,並且它保存了與JSON文件無關的文件結構。
有任何想法/建議嗎?
You can return JSON String using the below code.
List<String> stringDataset = sqlDF.toJSON().collectAsList();
return stringDataset;
Jackson will return the JSON string in this case.
If you want to return proper JSONObject the you can use the below code :
List<Map<String,Object>> result= new ArrayList<>();
List<String> stringDataset = sqlDF.toJSON().collectAsList();
for(String s : stringDataset){
Map<String,Object> map = new HashMap<>();
map = mapper.readValue(s, new TypeReference<Map<String, String>>(){});
result.add(map);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.