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
- 處理JSON資料JSON
- flutter json資料處理FlutterJSON
- Hive處理Json資料HiveJSON
- Delphi處理JSON格式資料JSON
- 處理json格式的資料JSON
- Python資料處理(一):處理 JSON、XML、CSV 三種格式資料PythonJSONXML
- 一個spark清洗資料的demoSpark
- 使用Spark和Cassandra進行資料處理(一)Spark
- C#中處理JSON資料的方式C#JSON
- Spark大資料處理框架入門(單機版)Spark大資料框架
- Apache Spark:大資料處理統一引擎ApacheSpark大資料
- jQuery處理json格式資料程式碼例項jQueryJSON
- JMeter中對於Json資料的處理方法JMeterJSON
- flutter json_annotation和json_serializable處理json資料序列化FlutterJSON
- 基於Spark的大資料實時處理開課Spark大資料
- 使用R和Apache Spark處理大規模資料 [session]ApacheSparkSession
- Spark在處理資料的時候,會將資料都載入到記憶體再做處理嗎?Spark記憶體
- spark處理jsonFileSparkJSON
- Spark叢集資料處理速度慢(資料本地化問題)Spark
- 資料演算法 Hadoop/Spark大資料處理---第十六章演算法HadoopSpark大資料
- java 如何簡單快速處理 json 中的資料JavaJSON
- C++實現對Json資料的友好處理C++JSON
- 原生ajax處理json格式資料程式碼例項JSON
- 流式大資料處理的三種框架:Storm,Spark和Samza大資料框架ORMSpark
- 資料演算法 Hadoop/Spark大資料處理---第十二章演算法HadoopSpark大資料
- Spark Streaming 流式處理Spark
- 第四章 Caché JSON 處理資料型別JSON資料型別
- Python資料處理(二):處理 Excel 資料PythonExcel
- Spark——為資料分析處理提供更為靈活的賦能Spark
- <Zhuuu_ZZ>Spark專案之log日誌資料分析處理Spark
- 資料處理
- Python處理JSONPythonJSON
- 使用Java處理JSON結構化資料 -Advanced Web MachineryJavaJSONWebMac
- spark-streaming-kafka透過KafkaUtils.createDirectStream的方式處理資料SparkKafka
- 三個大資料處理框架:Storm,Spark和Samza介紹比較大資料框架ORMSpark
- Hadoop與Spark等資料處理系統哪個是最好的?HadoopSpark