SparkRDD+SparkSession進行數據清洗與數據分析並遷移至數據庫中

SparkSQL+SparkRDD對中國保險汽車安全指數數據測試進行清洗與分析

榮幸終於轉入大數據工程師,根據最近正在做的項目,爲大家抽取了部分爲大家提供參考。寒江孤影,江湖故人啊

Spark SQL是構建在Spark RDD之上的一款ETL(Extract Transformation Load)工具,這類似於構建在MapReduce之上 的1.x版本的Hive。同Spark RDD的不同之處在於Spark SQL的API可以給Spark計算引擎提供更多的信息(計算數據結 構、轉換算子),Spark計算引擎可以根據Spark SQL提供的信息優化底層計算任務。目前爲止,Spark SQL提供了兩
種風格的交互式API:Dataset API/SQL腳本。
數據源: 中國保險汽車安全指數數據
開發環境: IDEA ,maven,scala
數據樣本:
在這裏插入圖片描述
數據源分析:
1.汽車價格存在多餘信息,需對關鍵信息進行提取
2.危險係數碰撞得分中出現出現數據爲P、M等需要進行ETL處理
開發需求分析:
1.使用SparkSQL對數據源實現ETL操作,技術應用:SparkRDD、SparkSQL、UDF自定義函數
程序開發:

import java.util.Properties

import org.apache.spark.sql.SparkSession

object car_info {
  def main(args: Array[String]): Unit = {
    val spark =  SparkSession.builder().appName("car_info_analyse").master("local").getOrCreate()
    spark.sparkContext.setLogLevel("FATAL")
    //創建RDD
    val carPairRDD = spark.read.option("header","true").csv("/sparkInfo/car_info.csv")
    //    carPairRDD.toDF().show(10)
    carPairRDD.toDF().createOrReplaceTempView("cars")
    //缺失值剔除
    //自定義函數處理價格
    spark.udf.register("replice_info",(like:String)=>like.replace("該車新車指導價爲","").replace("。",""))
    //自定義UDF數據清洗操作
    spark.udf.register("info_replace",(like:String)=>like.replace("P","較差").replace("M","一般").replace("A","良好").replace("G","優秀"))
    val result =spark.sql("select order,brand,factory,car_type,cat_rank,replice_info(price) as price,info_replace(danger_score) as danger_score,info_replace(people_in_safe_score) as people_in_safe_score,info_replace(people_out_safe_score) as people_out_safe_score,info_replace(assist_safe_score) as assist_safe_score from cars where danger_score = '--' or people_in_safe_score ='--' or people_out_safe_score='--' or assist_safe_score='--'")
    val prop =new Properties()
    prop.setProperty("user","root")
    prop.setProperty("password","Password123$")
    result.write.jdbc("jdbc:mysql://127.0.0.1:3306/car","car_info",prop)
    result.show()
    println(result.count())
    spark.stop()
  }
}

提交到集羣或IDEA進行本地測試:
在這裏插入圖片描述
在mysql中查看持久化數據:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章