spark處理json資料Demo
/**
* @Auther: sss
* @Date: 2019/2/26 14:24
* @Description:
* ps:資料是json 如下(資料是a#b#格式) 需求:lat,lng;timestamp#lat,lng;timestamp#lat,lng;timestamp (最後要是a#b格式)
*/
object xiaoM {
/* def main(args: Array[String]): Unit = {
//這種不對
val session = SparkSession.builder().appName(this.getClass.getSimpleName).master("local[*]").getOrCreate()
val files = session.read.json("C:\\Users\\sss\\Desktop\\jsons.json")
import session.implicits._
val rdd = files.rdd.flatMap {
row =>
row.getAs[Seq[Row]]("ridingTrackPoints").map {
row02 =>
val lat = row02.getDouble(1)
val lng = row02.getDouble(2)
val timestamp = row02.getLong(3)
val tag = String.format(s"lat:$lat,lng:$lng;timestamp:$timestamp#")
(tag)
}
}
rdd.toDF().write.saveAsTable("tmp_table")
session.sql("select * from tmp_table").foreach(f=>println(f))
}*/
def main(args: Array[String]): Unit = {
var ridelatlng: String = null
var lat: String = null
var lng: String = null
var timestamp: String = null
var str = "{aaa:[{'effective':true,'lat':36.670483,'lng':117.009472,'timestamp':1551151891728}," +
"{'effective':true,'lat':36.670597,'lng':117.009371,'timestamp':1551151893015}]}"
val rddJson = JSON.parseObject(str)
if (rddJson != null) {
if (rddJson.containsKey("aaa")) {
val ridingTrackPoints: JSONArray = rddJson.getJSONArray("aaa")
var ridelatlngstr = new StringBuilder()
for (i <- 0 until ridingTrackPoints.size()) {
val ridingTrackPointsJson = ridingTrackPoints.getJSONObject(i)
if (ridingTrackPointsJson.containsKey("lat")) {
lat = ridingTrackPointsJson.getString("lat")
}
if (ridingTrackPointsJson.containsKey("lng")) {
lng = ridingTrackPointsJson.getString("lng")
}
if (ridingTrackPointsJson.containsKey("timestamp")) {
timestamp = ridingTrackPointsJson.getString("timestamp")
}
ridelatlngstr.append(lat + "," + lng + ";" + timestamp + "#")
}
ridelatlng = ridelatlngstr.substring(0, ridelatlngstr.length - 1) //改變格式
}
}
println(ridelatlng)
}
}
相關文章
- flutter demo (三):json處理FlutterJSON
- 資料預處理 demo
- flutter json資料處理FlutterJSON
- Hive處理Json資料HiveJSON
- 處理json格式的資料JSON
- Python資料處理(一):處理 JSON、XML、CSV 三種格式資料PythonJSONXML
- 一個spark清洗資料的demoSpark
- C#中處理JSON資料的方式C#JSON
- flutter json_annotation和json_serializable處理json資料序列化FlutterJSON
- Spark大資料處理框架入門(單機版)Spark大資料框架
- 資料演算法 Hadoop/Spark大資料處理---第十六章演算法HadoopSpark大資料
- java 如何簡單快速處理 json 中的資料JavaJSON
- C++實現對Json資料的友好處理C++JSON
- Python處理JSONPythonJSON
- Spark在處理資料的時候,會將資料都載入到記憶體再做處理嗎?Spark記憶體
- Spark Streaming 流式處理Spark
- 資料演算法 Hadoop/Spark大資料處理---第十二章演算法HadoopSpark大資料
- 使用Java處理JSON結構化資料 -Advanced Web MachineryJavaJSONWebMac
- 第四章 Caché JSON 處理資料型別JSON資料型別
- Python資料處理(二):處理 Excel 資料PythonExcel
- json字串轉義格式化後再轉換處理demo StringEscapeUtils.unescapeJavaJSON字串Java
- spark-streaming-kafka透過KafkaUtils.createDirectStream的方式處理資料SparkKafka
- Spark——為資料分析處理提供更為靈活的賦能Spark
- <Zhuuu_ZZ>Spark專案之log日誌資料分析處理Spark
- 資料處理
- PostgreSQL處理JSON入門SQLJSON
- golang json處理問題GolangJSON
- 拿來即用:用C+JS結構來處理JSON資料JSON
- JSON資料傳輸大法第一式——用OADate處理日期格式JSON
- 海量資料處理
- python 處理資料Python
- springmvc 資料處理SpringMVC
- Panda資料處理
- 資料預處理
- Excel 資料處理Excel
- javascript - 資料處理JavaScript
- Spark如何與深度學習框架協作,處理非結構化資料Spark深度學習框架
- C#處理json實戰C#JSON